前言:
1.本章主要是针对面向过程进行源码审计Key值漏洞注入
2. 涉及源代码平台源码下载
Site: https://www.s-cms.cn/download.html
3. 利用apache特性绕过(自行了解)
1. 面向过程 源代码审计
1. 障碍?
-
面向过程懒得看/面向对象太绕
-
php造成sql注入根本原因:
1. mysql_query();
2. mysqli_query();
3. (new PDO())->query();
2. 审计思路:
1. XEE(外部实体注入)
2. Key值导致sql注入
1> 这里拓展对于key的理解原理:
后端:
foreach ($_GET as $a=>$b){
echo "{$a}:{$b}<br>";
}
前端:
http://localhost:63342/WWW/test.php?a=1&?b=2
结果:a:1 <br> b:2
原理: 等号前面是键/等号后面是值
3.PHP弱类型验证判断
1. 判断的时候会进行强制类型转换,且字符不能转int类型\
第一位不是数字就转换不了
3. 基于面向过程审计S-CMS平台KEY漏洞
1. 测试代码层原理代码waf通常是全局过滤
1> var_dump($_GET);
exit();
原理:输出变量返回的结果echo则不行;
2. 输入过滤是会吧某些关键字给替换掉
4. 现代化源码常见漏洞出现问题
1. XXE导致sql注入
2. key导致sql注入
5. 审计思路
1. 首先从入口(index.php)开始看
2. 首先看看有没有底层函数以及查询函数
3. 查看mysqli 还是mysql
4. 看是否封装mysql查询函数
5. 查看代码层WAF
6. 追溯输入是否被过滤
7. 构造Payload
Tip:intval()函数直接强制转换成数字了