大哥带我走渗透6(下)---文件上传
---恢复内容开始---
0x01 %00
- get类型%00截断绕过
吃了一个半小时午饭的小赵现在正式上线。。我的博客好造孽哦,天天要记录我的龟速学习状态还要听我唠叨我的苦逼生活。anyway,一切的一切都是为了向“钱”。
1.先收集资料,根据下面的提示得出,这里是白名单。
- post类型%00截断绕过
POST这里需要修改路径,在路径后面需要空格,然后还要修改一下hex(空格处)的值为00,记住,这次就不要在repeater里面改了,直接在proxy里面改就好了
【图片是复制金总的,我的找不到了】
OK,成功~
- get VS. post
1.get:改URL???反正我是昏掉了,,我是没有改成功===也貌似成功了一次??
2.post:改路径,将路径拼接到上传的文件路径中,凑成一个有php的路径。
0x02 图片内容伪造
cmd的copy命令
0x03 竞争条件绕过上传
1.了解概念:
竞争条件原理介绍
网站逻辑:
- 网站允许上传任意文件,然后检查上传文件是否包含webshell,如果包含删除该文件。
- 网站允许上传任意文件,但是如果不是指定类型,那么使用unlink删除文件。在删除之前访问上传的php文件,从而执行上传文件中的php代码。
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST["team"])?>');?>
2.思路分析
那我们可以上传一个脚本,在删除之前访问他,然后脚本内容是执行以后就可以生成副本。删除的是上传的,但是本地生成的不会被删除啊。参考:https://www.jianshu.com/p/09d0eb938e6a
3.最后的操作是:
上传我们的sc.php,内容为:
<?php $myfile = fopen("zwj.php", "w"); $txt = "<?php phpinfo();?>"; fwrite($myfile, $txt); fclose($myfile); ?>
和上面的代码的作用一样,只是内容不一样,显示的是php的版本。我们将$txt的内容改成一句话木马,连接上传的sc.php,一旦sc.php运行,那么将生成zwj.php文件,我们在连菜刀的时候连我们的zwj.php就行了。但是我们要怎么让具有删除功能的服务器,运行我们的sc.php,产生我们的zwj.php呢
4.通过burp的intruder功能
- 上传过程中,抓包发到intruder,发送3000个包,选择null无字典,设置100个线程,开始attack;然后一直刷新upload/sc.php
- 使用intruder,相同设置,但是有2个attack。一个是原网站,一个是upload/ac.php 千万不要把第二个搞错了。
0x04 CVE-2015-2348绕过上传
1.了解原理
php任意文件上传漏洞
再看一下大哥的网页提示,提到了一个move_uploaded_file()函数。
-
move_uploaded_file():函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
【这个我是真的做不出来】
0x05 总结
- 看来暑假真的需要努力了,php和Python。。。要不然真的死无葬生之地了。。。。
- 写东西利索一点,不要拖拖拉拉。。。