代码审计upload-labs上传漏洞靶场
2021-02-14 14:20
标签:包含漏洞 requests 写入 txt loaded ebs 不同 页面 绕过 基本把代码的意思都写入注释中了,我之前博客写的,图可能不是太清晰,也可以去我之前博客看 webshell; 直接function改成return true 2.Content-type绕过 稍微改一下就可以了 3.phtml上传绕过 成功绕过,这种黑名单方式不是很好,,建议白名单 6 后缀加空格绕过 木马上传成功 7.后缀加点绕过 在upload目录下看到的7.php其实是不带.的原因是在windows中的特性,把点取消了 在前面的代码基础上增加了 首尾去空,那么加空格绕过就不行了 :??”DATA” 9.利用. .绕过 比如上传一个.php. . 10.利用双写php绕过 11.GET %00截断绕过 想要成功这个需要一个小条件,一般会在拿到php版本的时候去测试 12.POST 00截断 改好就是这样的 13.图片马配合文件包含漏洞 先传一个gif 使用菜刀成功连接 上面的判断逻辑是这样的 15 exif_imagetype图片马绕过 这个开启php的php_exif模块 16图像二次渲染绕过 上传的方式是一样的,但是代码区别很大 二次渲染之后,图片是被替换了的,可以看到这里用到了imagecreatefromjpeg 17.条件竞争 这样可能会出现条件竞争,比如在程序还没运行完,我们就先访问到了他在校验文件后缀是否合法的那个文件。 通过Burp不断发提交一句话木马的请求 18.条件竞争 2 他这个upload路径没加/ 导致都传到根目录去了 代码写在前面了,先校验后缀,所以我们要先上传图片马,然后在对其条件竞争,可以通过上传.php.jpg的文件,条件竞争后,后有没被更改名字的,这个时候通过apahce的解析漏洞去找php.jpg的文件即可拿到shell 19.move_uploaded_file() 知道了大致内容再去看下代码分析下 Jpg要改成Php 通过这样的方式也可以 代码审计upload-labs上传漏洞靶场 标签:包含漏洞 requests 写入 txt loaded ebs 不同 页面 绕过 原文地址:https://www.cnblogs.com/Ekko-z/p/12994252.html
1.Js绕过
这一关没什么可说的,算是钻了apahce的一个空子吧
简单的一个黑名单的方式,但是利用了apahce的解析
在http.conf文件的第403行,这里直接会把phtml文件当作php代码来执行,其实你在这后面加个.txt,他都能给你当作php来执行
5 大小写绕过
可以看到源代码中并没有对空格做限制,windows中一个特性,加一个空格他会自动给你删除掉,加空格并不影响上述文件的一系列操作
同样是windows的特性
http://192.168.1.4/upload-labs/upload/7.php.
已经上传成功了
Windows特性,把后面的当作Io流了
上传成功
点空格点
那么第一步去这个名字,然后删除文件名末尾的点 变成”.php. “
然后函数strrchr 再去第一次出现的点,最后变成php点空格
然后在转为小写,然后在去字符串,变成php点空格,没影响,再首尾去空
又变成php.
变成了和上面一样的后缀加点的绕过方式。
要先判断下save_path后面的上传路径是否可控
1.PHP 版本
2.php.ini 中 magic_quotes_gpc=off
满足上面的条件的时候php就是把%00当成结束符,后面的数据直接忽略
save_path可控,因此00截断即可。利用save_path=../upload/11.php%00
改成加号的原因是+号在hex中是2b方便找到
其实这个content-type改不改是无所谓的,这个代码和11的区别就是get形和post的区别,GET请求中%00会被当做url解析最后成空,而在post请求中,他会把这个当作是字符串去执行。
先解读下代码的意思
然后这个要去通过文件包含漏洞去利用
在通过文件包含去访问gif
http://192.168.1.4/upload-labs/include.php?file=/upload/1820200215212531.gif
14.图片马配合文件包含2
这个上传绕过的方式和前面13的是一样的,有区别的地方是后端代码的不一样
这个后面上传的是一样的
方法和前面两个一样,唯一与众不同的就是上传的方式,用的是exif_imagetype的方式
这个函数把你上传的图片二次渲染后生成新的图片,用winhex打开,可以看到图片的代码是不一样的,有一部分是没变的,另外一部分的代码是被改变了的,要把Php一句话写入到没改变的代码中,用winhex。
然后判断二次渲染中的图片内容中是否含有Php代码。 import requests
url = "http://127.0.0.1/upload-labs/upload/test.php"
while True:
html = requests.get(url)
if html.status_code == 200:
print("OK")
break
这里可以通过Python脚本来实现不断访问Php马的页面
日了 ,有点小坑
直接上传图片马就行
然后上面那个加个gif头
上一篇:Flume从入门到实战
下一篇:Kubernetes编排工具
文章标题:代码审计upload-labs上传漏洞靶场
文章链接:http://soscw.com/index.php/essay/55237.html