iwebsec-sql注入 13 二次注入
1.iwebsec-sql注入 01 数字型注入2.iwebsec-sql注入 02 字符型注入3.iwebsec-sql注入 03 bool型注入4.iwebsec-sql注入 04 时间延迟型注入5.iwebsec-sql注入 05 报错型注入6.iwebsec-sql注入 06 宽字节字符型注入7.iwebsec-sql注入 07 空格过滤8.iwebsec-sql注入 08 大小写过滤注入9.iwebsec-sql注入 09 双写关键字绕过10.iwebsec-sql注入 10 双重url编码绕过11.iwebsec-sql注入 11 十六进制编码绕过12.iwebsec-sql注入 12 等价函数替换过滤
13.iwebsec-sql注入 13 二次注入
14.iwebsec-文件上传 01 前端JS过滤绕过15.iwebsec-文件上传 02 文件名过滤绕过16.iwebsec-文件上传 03 Content-Type过滤绕过17.iwebsec-文件上传 04 文件头过滤绕过18.iwebsec-文件上传 05 .htaccess19.iwebsec-文件上传 06 文件截断上传20.iwebsec-文件上传 07 条件竞争21.iwebsec-文件包含 01 本地文件包含22.iwebsec-文件包含 02 本地文件包含绕过23.iwebsec-文件包含 03 session本地文件包含24.iwebsec-文件包含 04 文件头过滤绕过25.iwebsec-文件包含 05 远程文件包含绕过26.iwebsec-文件包含 06 php://filter伪协议27.iwebsec-文件包含 07 php://input伪协议28.iwebsec-文件包含 08 php://input伪协议利用29.iwebsec-文件包含 09 file://伪协议利用30.iwebsec-文件包含 10 data://伪协议利用31.iwebsec-xss 01 反射型xss32.iwebsec-xss 02 存储型xss33.iwebsec-xss 03 DOM型xss34.iwebsec-xss 04 xss修复示例01、题目分析
二次注入的原理是先把sql注入语句存放在数据库中,然后第二次通过调用数据库的数据(提前放置好的注入语句),然后进行sql注入
那么我们先将注册用户,将sql语句存放在数据库中,然后通过找回密码操作,数据库会自动调取数据库中的数据,就执行了我们的sql语句
02、手工注入
二次注入的前提是代码中使用了addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,这个我们在后面的代码分析中会进行分析,现在先默认存在。
我们现在假如想获取admin用户的密码
那么我们注册用户名填admin'#,密码填123,邮箱填admin
然后通过邮箱找回
02、代码分析
<?php if(!empty($_POST['email'])){ if($_POST['sub']){ // 获取用户名、密码和电子邮件,并过滤特殊字符 $username = addslashes($_POST['username']); $password = addslashes($_POST['password']); $email = addslashes($_POST['email']); // 构造插入数据库的 SQL 语句 $sql = "INSERT INTO `users` (`username`, `password`, `email`) VALUES ('$username', '$password', '$email');"; // 执行 SQL 语句 $row = mysql_query($sql); if($row){ echo "<script>alert('注册成功')</script>"; }else{ echo "<script>alert('注册失败')</script>"; } } }else{ echo "<center>请注册输入信息</center>"; } ?>
<?php if(isset($_POST['sub'])){ $email = $_POST['email']; $email = addslashes($email); // 连接数据库(假设数据库连接已经在代码的其他地方进行) $conn = mysqli_connect("localhost", "username", "password", "database_name"); if (!$conn) { die("数据库连接失败: " . mysqli_connect_error()); } // 查询用户 $sql = "SELECT * FROM users WHERE email='{$email}'"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0) { $row = mysqli_fetch_assoc($result); $username = $row['username']; $sql2 = "SELECT * FROM users WHERE username='{$username}'"; $result2 = mysqli_query($conn, $sql2); if(mysqli_num_rows($result2) > 0) { $row2 = mysqli_fetch_assoc($result2); echo "<center><h4>您的用户名是 " . $row2['username'] . "</h4><br>"; echo "<center><h4>您的密码是 " . $row2['password'] . "</h4><br>"; } else { echo "<script>alert('邮箱不存在')</script>"; } } else { echo "<script>alert('邮箱不存在')</script>"; } // 关闭数据库连接 mysqli_close($conn); } ?>
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步