实战审计某云黑系统

临近期末,在复习之余偶尔有些枯燥无味,遂想找点小系统审计波玩玩。 这不,在某资源网上看到个云黑系统,就下载下来玩玩。

0x00前言

63665-li1huhx9cp.png

临近期末,在复习之余偶尔有些枯燥无味,遂想找点小系统审计波玩玩。
这不,在某资源网上看到个云黑系统,就下载下来玩玩。
17526-tkmol1uyjha.png

不得不说,这个系统目前使用人数还不少
89451-bl1fua9l9w.png

0x01正文

怎么安装就不交了,有手就行。直接步入正题

  • *index.php
    41070-unkycjn55j.png

    1. <?php
    2. if($qq=$_POST['qq']) {
    3. $qq=$_POST['qq'];
    4. $row=$DB->get_row("SELECT * FROM black_list WHERE qq='$qq' limit 1");
    5. echo '<label>查询信息:'.$qq.'</label><br>';
    6. if($row) {
    7. echo '
    8. <label>黑名单等级:</label>
    9. <font color="blue">'.$row['level'].'级</font><br>
    10. <label>黑名单时间:</label>
    11. <font color="blue">'.$row['date'].'</font><br>
    12. <label>黑名单原因:</label>
    13. <font color="blue">'.$row['note'].'</font><br>
    14. <label><font color="red">请停止任何交易!</font> </label>';
    15. ?>

    不得不说,作者的安全意识还是有待提高的,好歹后台插入数据时候还用了daddslashes(),怎么前台反而打开家门。
    首先

    1. if($qq=$_POST['qq']) {
    2. $qq=$_POST['qq'];
    3. $row=$DB->get_row("SELECT * FROM black_list WHERE qq='$qq' limit 1");

    直接post数据代入查询由下列代码输出数据,所以说字符型注入 GET✔
    然后

    1. if($row) {
    2. echo '
    3. <label>黑名单等级:</label>
    4. <font color="blue">'.$row['level'].'级</font><br>
    5. <label>黑名单时间:</label>
    6. <font color="blue">'.$row['date'].'</font><br>
    7. <label>黑名单原因:</label>
    8. <font color="blue">'.$row['note'].'</font><br>
    9. <label><font color="red">请停止任何交易!</font></label>';
    10. ?>

    94653-fpdcv49jz1c.png

    1. payload:-1'union select 1,2,user(),4,5#

    然后呢、

    1. echo '<label>查询信息:'.$qq.'</label><br>';

这串代码导致可以造成xss
59891-z7f90b2vh3.png

  • *query.php
    这块其实跟刚才的代码差不多。唯一的区别就是需要先GET形式代入QQ参数,其他跟上文无差别
    87491-7b9mk9yljso.png

50805-03ywg3cdx64l.png

0x02修复方案

利用intval()函数,强制将输入数据化为整型
25875-7mld6n4mbrp.png

如图所示
05855-spcqgihduf.png

  • 发表于 2021-07-06 18:11:27
  • 阅读 ( 6581 )
  • 分类:漏洞分析

0 条评论

YanXia
YanXia

2 篇文章

站长统计