渗透测试之pikachu暴力破解(验证码绕过on server)

1.   查看一下网页源代码

 

  看到对于username、password,后台从数据库中进行查询判断

  对于vcode值,将用户提交的$_POST['vcode']值和$_SESSION['vcode']值进行比较

  对数据进行抓包

 

  选择forward后 可以看到数据提交请求到/pikachu/inc/showvcode.php上

 

  查看showvcode.php的源代码

 

  看到调用了function.php文件 查看function.php的代码

 

由于没有具体的引用内容,以下基于一般的知识来分析pikachu靶场中可能与`onclick`(推测你想说的是`onclick`而不是`onclien`)相关的验证码绕过问题及解决方案。 #### 问题产生原因 在pikachu靶场这类安全测试环境中,验证码的作用是防止自动化脚本恶意操作。但当验证码相关逻辑与`onclick`事件存在漏洞时,就可能被绕过。比如,前端`onclick`事件处理函数可能没有正确验证验证码,或者验证码的验证逻辑完全依赖前端,没有在后端进行二次验证。 #### 常见绕过方式及解决方案 ##### 前端验证绕过 - **现象**:验证码的验证逻辑仅在前端`onclick`事件中实现,开发者在按钮的`onclick`事件处理函数里检查验证码是否正确,如果正确则提交表单。攻击者可以通过修改前端代码绕过这个验证。 - **解决方案**:验证码验证必须在后端进行。前端`onclick`事件可以做一些简单的格式检查,但最终的验证要依赖后端。以下是示例代码: **前端代码(HTML + JavaScript)** ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form id="myForm" action="backend.php" method="post"> <input type="text" id="captcha" name="captcha" placeholder="输入验证码"> <button type="button" onclick="checkForm()">提交</button> </form> <script> function checkForm() { // 简单的格式检查 var captcha = document.getElementById('captcha').value; if (captcha.length === 0) { alert('请输入验证码'); return; } document.getElementById('myForm').submit(); } </script> </body> </html> ``` **后端代码(PHP)** ```php <?php session_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { $userCaptcha = $_POST["captcha"]; $correctCaptcha = $_SESSION["captcha"]; if ($userCaptcha === $correctCaptcha) { // 验证码正确,处理业务逻辑 echo "验证码验证通过"; } else { echo "验证码错误"; } } ?> ``` ##### 验证码重用绕过 - **现象**:在`onclick`事件触发后,验证码没有被及时更新,攻击者可以多次使用同一个有效的验证码进行提交。 - **解决方案**:每次验证码被使用后,在后端立即更新验证码。例如在PHP中,生成新的验证码并更新`$_SESSION`中的值。 ```php <?php session_start(); // 生成新的验证码 $newCaptcha = generateCaptcha(); $_SESSION["captcha"] = $newCaptcha; function generateCaptcha() { // 生成验证码的逻辑 $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; $captcha = ''; for ($i = 0; $i < 6; $i++) { $captcha .= $characters[rand(0, strlen($characters) - 1)]; } return $captcha; } ?> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值