第一关 暴力破解
基于表单的暴力破解
bp抓包的攻击模式
单字典:Sniper、Battering ram
Sniper:如果选择多个变量,此字典会先爆破一个变量,再爆破第二个变量(一个一个来)
Battering ram:无论选择过个变量。此字典都会同时爆破(多个一起上)
多字典:Pitchfork、Cluster bomb
Pitchfork:此字典同时进行(同时出,位1对位1,位2对位2)
Cluster bomb:爆破建议选择此字典(一对多。我出1,你逐个出完后,我再出2,你再逐个出完后,我才能再出下一个)
1.输入随便的账号密码
2.使用bp抓包
发送到Intruder
模式选cluster bomb
位置1,2填上pikachu提示的账号密码
开始抓包
通过返回长度不同得到正确的账号密码
验证码绕过(on server)
通过测试
得出结论:若网页不刷新,验证码不改变
所以输入正确的验证码,重复上一关的操作
验证码绕过(on client)
输入错误的验证码,得到错误提示弹框(前端验证),按F12出现开发者工具,再F1,选择禁用JavaScript
再按照之前的操作进行
token防爆破
攻击目标要选择password,以及token,攻击方式选择Pitchfork
密码选择之前一样的
token选择递归搜索
在settings里,grep-extract中,点add
刷新请求后,找到token的值(可以使用下面的搜索框),选定后点ok
再选always,开始攻击
若出现下面的错误,是因为递归搜索只能负载一个线程
所以在资源库中创建一个线程为一的使用
之后成功
xss
反射型xss(get)
通过输入发现输入框限制长度,按F12在前端找到对应输入框元素,修改长度为100,
再次输入弹窗标签,
payload: <script>alert('xss')</script>
成功
反射性xss(post)
先根据提示登陆账号
之后在输入框输payload
操作一样
摘抄:我们先看一下post和get请求的区别
数据传输方式:
GET请求:数据通过URL中的查询参数附加在URL后面,以明文形式传输数据。
POST请求:数据作为请求的正文发送,而不是通过URL传递。
数据长度限制:
GET请求:有长度限制,受浏览器和服务器对URL长度的限制。
POST请求:没有固定的长度限制,适合传输大量数据。
数据安全性:
GET请求:数据以明文形式暴露在URL中,容易被窃听和拦截。
POST请求:数据在请求正文中传输,并可以使用加密协议(如HTTPS)进行传输,相对更安全。
数据缓存:
GET请求:可以被浏览器缓存,可以提高性能。
POST请求:通常不被浏览器缓存。
仔细观察就会发现,get型的那一关,我们输入的payload在url中有显示,而post则没有显示
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_65165505/article/details/131568188
存储型xss
和之前操作一样
<script>alert('xss')</script>
发现来回切换页面时,弹窗反复出现,被储存。
DOM型xss
查看源代码,找见a标签需要闭合的方式 ' 然后再根据提示输入payload
'οnclick=alert('xss')>
完成
DOM型xss-x
和之前一样,多点一次,体现在网页上端的url上
xss盲打
根据提示,打开后台登陆查看
xss之过滤
输入后,发现<script>标签被过滤了,可以用其他的方法绕过
<a herf=' ' οnclick=alert('xss')>
xss之htmlspecialchars
按f12查看代码,用 ' 闭合语句,
xss之href输出
先随便尝试一下
发现是a标签
尝试注入
' onclick ='alert(111)
查看源代码
发现被编码了
使用Java语段
javascript:alert(111)
成功
xss之js输出
代码中已有<script>标签,所以先闭合前一个,再注入
</script><script>alert('xss')</script>