复现——PHP代码审计-——飓风CMS1.10存在SQL注入漏洞

  • 复现笔记
    https://blog.csdn.net/Xxy605/article/details/117813101

一、环境

小皮面板

问题1

我也不知道为什么我总能遇到奇奇怪怪的错误——finally:php版本问题

问题

在这里插入图片描述
require就是import一个php,要么没这个文件 要么没权限读。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题2

…xs

  • jufengcms/x/install/index.php最后一步的进度也不会显示动;
  • jufengcms/x/admin/admin.php 登录不会跳转。

解决:
自建网站的根目录 要指向 CMS的文件夹

www下
sqlilabs/lesson1/lesson1.php √
jufengcms/x/admin/admin.php ×

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、开始复现

笑了,至此解决了一些基础问题
感谢xygg

1. 添加tag时抓包

POST /x/admin/ajax.php?xhash=ab000faed82b7a7aeec34dd750093a5c HTTP/1.1
Host: testcms
Proxy-Connection: keep-alive
Content-Length: 18
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://testcms
Referer: http://testcms/x/admin/admin.php?xhash=ab000faed82b7a7aeec34dd750093a5c
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: PHPSESSID=bgdpkd4hs4c9ph2bk8ks1m86k4; d3629uid=4

m=tag_fields&name=

存入jfcms.txt
但是:
在这里插入图片描述

在这里插入图片描述

2. sqlmap探测是否存在漏洞

使用kali-sqlmap

在这里插入图片描述

Windows上编写bat批处理文件启动sqlmap_传参启动python脚本

这里学的

添加sqlmap环境变量

在这里插入图片描述
在这里插入图片描述
编写sqlmap.bat

python "X:/xxx/sqlmap/sqlmap.py" %*

%* 接受传参,参数直接传入脚本
使用:

# 直接
sqlmap -h

在这里插入图片描述

3. 追踪

这个函数功能在于加斜杠,并未过滤,所以存在注入

/**
 * 给字符串左右两侧添加 /
 * @param type $str
 * @param type $flag 0:两边 , 1:左边, 2:右边
 * @return type
 */
function addSlash($str, $flag = 2)
{
    
    
    $_str = $str;
    if ($flag == 0) {
    
    
        if (!startWidth($_str, "/")) {
    
    
            $_str = "/{
      
      $_str}";
        }
        if (!endWidth($_str, "/")) {
    
    
            $_str = "{
      
      $_str}/";
        }
    } elseif ($flag == 1) {
    
    
        if (!startWidth($_str, "/")) {
    
    
            $_str = "/{
      
      $_str}";
        }
    } elseif ($flag == 2) {
    
    
        if (!endWidth($_str, "/")) {
    
    
            $_str = "{
      
      $_str}/";
        }
    }

    return $_str;
}

おすすめ

転載: blog.csdn.net/grb819/article/details/121008421