2026/4/18 14:04:08
网站建设
项目流程
网站建设及维护招聘,百度公司总部在哪里,网站开发软件下载,徐州网站建设青州陈酿这里使用的工具是burp抓包工具
LOW
一、直接抓包发送到intruder模块进行操作发现请i去方式是GET形式#xff0c;数据有username和password那将username和password添加变量#xff0c;使用cluster bomb模式攻击即可#xff0c;右侧添加爆破的值发送攻击后通过长度判断出用户名…这里使用的工具是burp抓包工具LOW一、直接抓包发送到intruder模块进行操作发现请i去方式是GET形式数据有username和password那将username和password添加变量使用cluster bomb模式攻击即可右侧添加爆破的值发送攻击后通过长度判断出用户名和密码这里我自己尝试探测是否存在sql注入使用sqlmap工具可测试username字段注意携带cookie二、代码审计后端对与用户输入的内容未作任何过滤直接向数据库中查询数据这里可以得出存在字符型sql注入漏洞总结后端未作任何处理存在暴力破解登录和sql注入漏洞的问题Medium一、抓包查看无任何变化直接将username和password字段添加变量设置攻击类型为cluster bomb模式成功得到用户名和密码这里破解时感觉比较慢推测后端对登录失败有延迟响应处理二、代码审计使用了mysqli_real_escape_string()函数对用户输入的内容做了转义但这是暴力破解密码不起任何作用将密码进行md5加密防止了传输中密码泄露但是md5加密存在漏洞这里当用户登录失败后会有延迟响应这就是在破解时感觉比较慢的原因总结后端进行了转义但这种只对sql注入有影响对暴力破解无任何影响对密码和登录失败做了处理High一、抓包查看情况这里可以看到存在user_token值即token其他都没有变化这里可以考虑token值有哪些属性一次性随机性那这里就爆破密码在password和user_token字段添加变量cluster bomb模式二、payload设置password设置不变重点是token值的选择想到token在服务器发送的响应文件中那就通过正则表达是提取添加在设置中找到检索-提取选项点击添加通过burp中自带的查找模块查找在弹出框中输入token后选中vlue后的值(复制后续使用)就能找获取正则表达式了在将重定向跳转改为总是将payload类型选为递归提取添加初始值请求次数设置为1后就可以攻击了三、代码审计重点是做了对token的校验判断是否合法使用了mysqli_real_escape_string()函数对用户输入的内容做了转义但这是暴力破解密码不起任何作用使用sleep函数对登录失败进行了随机延迟响应总结添加了token值增加了暴力破解的难度但还是存在漏洞Impossible代码审计// 这一关的代码比较多这里列举重点的部分1.token的校验if(isset($_POST[Login])isset($_POST[username])isset($_POST[password])){checkToken($_REQUEST[user_token],$_SESSION[session_token],index.php);2.账号锁定// Default values$total_failed_login3;// 最大失败登录次数3次$lockout_time15;// 锁定时间15分钟$account_lockedfalse;// 账号锁定标记// 查数据库获取用户失败登录次数、最后登录时间$data$db-prepare(SELECT failed_login, last_login FROM users WHERE user (:user) LIMIT 1;);$data-bindParam(:user,$user,PDO::PARAM_STR);$data-execute();$row$data-fetch();// 检查账号是否因多次失败被锁定if(($data-rowCount()1)($row[failed_login]$total_failed_login)){$last_loginstrtotime($row[last_login]);// 最后失败登录时间时间戳$timeout$last_login($lockout_time*60);// 解锁时间 最后失败时间 15分钟$timenowtime();// 当前时间戳// 未到解锁时间 → 标记账号锁定if($timenow$timeout){$account_lockedtrue;}}PDO预编译// 验证账号密码PDO 预编译$data$db-prepare(SELECT * FROM users WHERE user (:user) AND password (:password) LIMIT 1;);$data-bindParam(:user,$user,PDO::PARAM_STR);$data-bindParam(:password,$pass,PDO::PARAM_STR);$data-execute();$row$data-fetch();这一关使用了token的防护PDO防注入账号锁定随机延迟模糊的提示通关token增加了暴力破解的难度PDO预编译进一步杜绝了的sql注入的漏洞问题账号锁定彻底阻断暴力破解问题模糊的提示防止了账号的枚举问题