pikachu解题步骤 2022-11-19 19:17:22 所属地 山西省 Burte Force =========== 基于表单的暴力破解 --------- 1、打开题目,是个登陆框,可以尝试暴力破解 ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856642_6378bb423fda0f7efb8d4.png) 2、抓包爆破 ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856643_6378bb4303839824facbc.png) ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856643_6378bb43d6f323c55e7bd.png) 验证码绕过(on server) ---------------- 解题步骤 1、打开题目,发现这次添加了验证码,还是抓包 ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856644_6378bb44c1523b1000aba.png) 2、暴力破解发现`验证码无条件不刷新`,**无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解**。直接破解成功 ![image.png](https://image.3001.net/images/20221122/1669109029_637c95259ce2681de5dc9.png) 验证码绕过(on client) ---------------- 解题步骤 1、打开题目,发现有验证码 ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856645_6378bb45b73bbcddde595.png) 2、 ![image.png](https://image.3001.net/images/20221122/1669109052_637c953c6966b6ff064e4.png) 尝试点击登陆,发现弹窗是 ![image.png](https://image.3001.net/images/20221122/1669109083_637c955b7589ee8deb128.png) 而不是请输入用户名和密码,**说明这是前端检验**,没有数据包的通过。 3、抓包爆破 ![image.png](https://image.3001.net/images/20221122/1669109102_637c956e648214d4a7703.png) 我们可以利用Response Modification中的`Remove all Javascript`功能,将所有JS移除 ![image.png](https://image.3001.net/images/20221122/1669109123_637c9583484fc1c87f914.png) 然后爆破 ![image.png](https://image.3001.net/images/20221122/1669109159_637c95a71b06d63adc028.png) token防爆破? --------- 解题步骤 1、打开题目,照常抓包 ![image.png](https://image.3001.net/images/20221122/1669109176_637c95b8535bdd42381a0.png) 发现多了token认证,那么我们可以换一种爆破方式 2、选择爆破方式 这里有两个爆破点,一个是`password`,一个是`token` ![image.png](https://image.3001.net/images/20221122/1669109196_637c95cc02bdfb26139f5.png) 然后在option中选择 ![image.png](https://image.3001.net/images/20221122/1669109220_637c95e4d622f42a3d489.png) 这里一定要填总是 在这个地方 ![image.png](https://image.3001.net/images/20221122/1669109236_637c95f4b20137331998b.png) 添加token值 ![image.png](https://image.3001.net/images/20221122/1669109334_637c9656c862aca130b9f.png) 在有效载荷内选择play类型为**递归匹配** 然后把token值放在这里 ![image.png](https://image.3001.net/images/20221122/1669109273_637c96192be23b11724a9.png) 然后再设置第一个爆破点,用普通列表以及密码本爆破即可 ![image.png](https://image.3001.net/images/20221122/1669109289_637c9629a36ca20dcdeb6.png) 爆破成功 XSS === 反射型xss(get) ----------- 解题步骤 本题没有任何防护措施,可以直接做出来,playload如下 发现被截断了 ![image.png](https://image.3001.net/images/20221122/1669109467_637c96db52d3029484f97.png) 可以打开开发者工具,直接修改最大值。 ![image.png](https://image.3001.net/images/20221122/1669109424_637c96b01136eceb1072e.png) 本题得解 反射性xss(post) ------------ 解题步骤 1、打开题目,发现是个登录框,登陆之后 ![image.png](https://image.3001.net/images/20221122/1669109904_637c98909382f899636d0.png) 2、可以直接利用xss做,playload如下 ![image.png](https://image.3001.net/images/20221122/1669109924_637c98a4e88821cab0bcd.png) ![image.png](https://image.3001.net/images/20221122/1669109938_637c98b2167573c4b631d.png) 本题得解 存储型xss ------ 解题步骤 1、打开题目,发现是个留言板,直接利用xss,playload如下 ![image.png](https://image.3001.net/images/20221122/1669109870_637c986ef247946459da9.png) 本题得解 2、然后在另外一个浏览器中来到本关页面,也出现了同样的弹框。说明存储型XSS能危害所有访问受影响页面的用户。 ![image.png](https://image.3001.net/images/20221122/1669109878_637c9876e6a4a5683331e.png) DOM型xss ------- 解题步骤 1、打开题目,尝试输入 ![image.png](https://image.3001.net/images/20221122/1669109832_637c984826ffc420b59e0.png) 2、发现不可以,查看源码 ![image.png](https://image.3001.net/images/20221122/1669109839_637c984fbd0bcc646c992.png) ![image.png](https://image.3001.net/images/20221122/1669109847_637c9857f34fa6fa24c13.png) 本题得解,这里要注意的是`onclick`函数只有点击才会生效,所以只有点击`what do you see`才会有弹窗。 DOM型xss-x --------- 解题步骤 1、打开题目,秉持有框就打的原则,尝试输入playload '> ![image.png](https://image.3001.net/images/20221122/1669109804_637c982c5356242ca864e.png) 2、根据源码 ![image.png](https://image.3001.net/images/20221122/1669109767_637c980764100c0fab698.png) 只有点击这个`[有些费尽心机想要忘记的事情,后来真的就忘掉了`才会执行domxss,我们点击一下 ![image.png](https://image.3001.net/images/20221122/1669109782_637c981667cbdb4ca8ba8.png) 本题得解 xss盲打 ----- 解题步骤 1、打开xss之盲打,随意输入看看是什么效果。\`\`\`发现并不任何反应 ![image.png](https://image.3001.net/images/20221122/1669109689_637c97b9abc46d74d813a.png) 2、所以我们输入的内容并不会在前端输出,看起来应该是存到了后台,也就是说可能只有管理员可以看。 我们输入``,设置一个弹窗,看看管理员在后台登陆上,是否会被x到。如果被x到这种场景就叫做盲打。 ![image.png](https://image.3001.net/images/20221122/1669109708_637c97cc9522b60983562.png) ![image.png](https://image.3001.net/images/20221122/1669109722_637c97da1e7a6665eea05.png) 果然如此 xss之过滤 ------ 解题步骤 1、打开题目,秉持有框就打的原则,输入playload 2、看到过滤,就先试了下<>和script都没被过滤,但两者合在一起`)` ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856651_6378bb4bc702ed56f9fc0.png) xss之htmlspecialchars -------------------- 在做这道题之前我们必须知道什么是htmlspecialchars htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数 预定义的字符是 & 成为 & " 成为 " ' 成为 ' < 成为 < > 成为 > 可用引号类型 ENT_COMPAT:默认,仅编码双引号 ENT_QUOTES:编码双引号和单引号 ENT_NOQUOTES:不编码任何引号 但是,有一个非常重要的点就是htmlspecialchars默认不过滤`'`,这样就好办了,playload如下 ' onclick = ' alert(1) ![](https://image.3001.net/images/20221119/1668856652_6378bb4c720d602248568.png) xss之href输出 ---------- 解题步骤 1、打开题目,尝试输入,发现输进去的东西在href标签中 ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856653_6378bb4d294ed97e34689.png) 2、这里要用到js协议的知识 > javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行 3、playload如下 javascript:alert(1) ![在这里插入图片描述](https://image.3001.net/images/20221119/1668856653_6378bb4dd14fc8da8e031.png) xss之js输出 -------- 解题步骤 1、打开题目,照例输入,没有反应 2、查看源码才发现,我们的输入被放到了`";}`,会出现弹窗。 ![image.png](https://image.3001.net/images/20221122/1669109569_637c9741eaf2b9e27e639.png) RCE === exec "ping" ----------- 解题步骤 1、打开题目,发现要ping地址 ![image.png](https://image.3001.net/images/20221122/1669109548_637c972c075b730f0596d.png) 随便ping一个 ![image.png](https://image.3001.net/images/20221122/1669109523_637c97138a319e1b05322.png) 可以ping通 2、尝试playload 127.0.0.1 | ipconfig 可以直接解出 ![image.png](https://image.3001.net/images/20221122/1669109506_637c97025a5399d816f22.png) 到这里还没有结束,我们可以研究一下漏洞的起因,查看源码 $result.=shell_exec('ping '.$ip);//直接将变量拼接进来,没做处理 }else { $result.=shell_exec('ping -c 4 '.$ip); } `shell_exec()`函数通过 shell 执行命令并将完整的输出以字符串的方式返回,在没有做处理的情况下直接拼接 \# 漏洞 \# 网络安全 \# web安全 \# 漏洞分析