米游社 · 崩坏:星穹铁道

回归老登,终于……

来自版块: 候车室
0
3
0
文章发表:2025-04-17 最后编辑:02-28

前置合规声明

以下所有测试方法仅适用于您本人所有、具备完整合法测试授权的自有网站,严禁用于任何非授权站点,否则将违反《中华人民共和国网络安全法》《刑法》相关规定,承担对应的法律责任。

PHP 注入风险通常包含SQL 注入(最常见,结合您的分班查询场景重点说明)、命令注入、代码注入三类,以下是针对这三类风险的具体判断方法,结合您的网页参数(type=student、username、password)给出可直接落地的操作步骤。

一、判断前的基础准备(通用)

确认接口核心信息(您的网页已明确):

请求方式:POST

提交地址:http://mihoyo.com/index.php

测试参数:type、username、password

记录基准响应:

输入正确参数(username=真实身份证&password=真实姓名&type=student),记录页面是否返回分班结果、提示语;

输入错误参数,记录页面提示(如 “未查询到信息”)。

二、手动测试判断(分类型)

(一)SQL 注入风险判断(最核心,针对您的查询场景)

核心逻辑:用户输入是否能篡改后端 SQL 语句的执行逻辑。

1. 快速初判(优先测试username/password参数)

表格




测试类型具体操作(以username为例)风险判断标准单引号报错测试username=123'(仅加一个单引号),password任意,提交页面返回MySQL 语法报错(如You have an error in your SQL syntax)→ 存在 SQL 注入风险万能密码绕过username=任意值' OR '1'='1,password任意,提交无需正确账号密码,页面直接显示查询结果→ 存在 SQL 注入风险注释闭合测试username=正确身份证' -- (--后加空格),password任意,提交仍能查询到结果(注释掉后续AND password=...)→ 存在 SQL 注入风险

2. 精准验证(初判无明确结果时)

布尔盲注:

username=正确身份证' AND '1'='1,password正确→ 页面返回结果;

username=正确身份证' AND '1'='2,password正确→ 页面无结果;若两步响应有明显差异→ 存在 SQL 注入风险。

时间盲注:username=1' AND sleep(5) -- ,password任意,提交;若页面延迟 5 秒以上加载→ 存在 SQL 注入风险。

(二)命令注入风险判断(若网页涉及系统命令调用)

若 PHP 代码中使用了system()、exec()、shell_exec()等函数,可能存在命令注入风险(您的分班查询场景概率较低,可简单验证)。

测试方法(以username为例):

输入以下 payload,观察页面是否返回系统命令执行结果:

username=123|whoami(|为管道符,执行后续命令)

username=123;cat /etc/passwd(;分隔命令,Linux 系统)

username=123&ipconfig(&后台执行命令,Windows 系统)

风险判断标准:

页面返回当前系统用户名、网络配置、文件内容等→ 存在命令注入风险。

(三)代码注入风险判断(若网页涉及动态代码执行)

若 PHP 代码中使用了eval()、assert()、preg_replace()(/e模式)等函数,可能存在代码注入风险。

测试方法(以username为例):

输入以下 payload,观察页面是否执行 PHP 代码:

username=123';phpinfo();//(闭合原语句,执行phpinfo())

username=${phpinfo()}(变量解析执行代码)

风险判断标准:

页面显示 PHP 配置信息(phpinfo()页面)→ 存在代码注入风险。

*、*具辅助判断(快速精准)

1. SQLMap(测 SQL 注入,核心工具)

步骤 1:用 Burp Suite 抓包表单请求,保存为request.txt(内容示例:POST /index.php HTTP/1.1...type=student&username=123&password=test);

步骤 2:执行命令:sqlmap -r request.txt --batch;

结果判断:若输出Parameter: username (POST) is injectable→ 存在 SQL 注入风险。

2. Burp Suite/OWASP ZAP(通用漏洞扫描)

抓包后右键点击「Do active scan」(Burp)或「主动扫描」(ZAP);

扫描完成后查看「Dashboard」,若提示「SQL Injection」「Command Injection」等→ 存在对应注入风险。

四、代码层面辅助判断(若您有网站源码权限)

直接查看 PHP 源码,若存在以下特征则有注入风险:

SQL 注入风险:

直接拼接用户输入构建 SQL 语句,如:php



运行





$sql = "SELECT * FROM student WHERE username = '".$_POST['username']."'"; // 风险代码


未使用预编译参数化查询(PDO/MySQLi 预处理)。

命令注入风险:

直接将用户输入传入危险函数,如:php



运行





system("ping ".$_POST['ip']); // 风险代码


代码注入风险:

直接将用户输入传入eval()等函数,如:php



运行





eval($_POST['code']); // 风险代码


总结

最常见风险:SQL 注入,优先通过「单引号报错」「万能密码」「SQLMap」判断;

核心判断依据:用户输入是否能控制后端 SQL / 命令 / 代码的执行逻辑;

快速验证:优先用 SQLMap 扫描,可快速确认是否存在 SQL 注入风险。


3
0
看帖是喜欢,评论才是真爱:
0 / 1000
  • 全部评论
  • 只看楼主
排序:最早
0
0
3
扫码下载
米游社App