参考视频b站小迪安全和菜狗安全和知名小朋友大佬
免责声明:仅供参考学习,禁止非法活动,如有违法犯罪,概不追究本人责任。
如何快速在多个代码里找到脆弱
1.看文件路径(前台优先看,后台往后看)
2.看代码里面的变量(可控变量)
3.看变量前后的过滤
安装:
1.php版本 5.3.29 数据库 5.1.60
2.bluecms版本 BlueCMS BlueCMS 1.6
如何找到突破口
https://www.cnvd.org.cn/flaw/show/CNVD-2022-25774
(update|select|insert|delete|).*?where.*=
安装:
1.php版本 5.6.29 数据库 5.1.60
2.bluecms版本emlog 6.0.0
https://www.cnvd.org.cn/flaw/show/CNVD-2018-26200
GET /admin/comment.php?action=delbyip&token=9f40e10adf43ac2af3f0098bc769eae4&ip=127.0.0.1%27and(extractvalue(1,concat(0x7e,(select%20user()),0x7e)))%20--+
案例(3)---菜狗 公众号信呼OA分析-sql
版本:最新版本 2.7.0
参考文章:
https://mp.weixin.qq.com/s/YIQDnYjSbRFStPEWJ-nWBw 菜狗安全的审计 菜狗大佬的【代码审计-实战分析某OA前台注入&鉴权绕过】 https://www.bilibili.com/video/BV1aDqTYkEQm/?share_source=copy_web&vd_source=7ff27bdc142f051d6aec8c3424b47cb8 知名小朋友大佬的B站视频
路由分析
这里可以看看上面菜狗大佬,的文章,里面有详细讲解路由的配置代码思路思考
mvc框架,大概路由这样设置的
分析get封装
这里可以看一下知名小朋友大佬的b站视频,里面有讲到这个get的方法
在rock类中的get方法
跟进找到这里
漏洞产生地方
这个有意思,在封装get方法传参的过程中,会对base64进行解码(但是有条件,参数值需要以basejm_ 开头),然后对解码后的内容进行检查是否存在xss,sql注入等。<br/>但是某些前端输入的参数是base64编码,但是不要求是basejm_开头,会在传入参数之后,走完封装的get方法之后再进行base64解码。<br/>这样的话,前端传入到这个get封装的方法的时候没有满足解码要求,没有进行base64解码,get检测就是base64的内容,就会绕过检测,从而导致sql注入。<br/>信任没有完全覆盖。
寻找漏洞代码
底层封装的slq语句大概的意思
第二处
对应文件:webmain/system/table/tableAction.php
对应方法:savedbupurlAjax()
不搞了 大概思路都是一样,分析底层mysql 执行语句,然后进行poc验证