作者:农村小姑娘0 | 来源:互联网 | 2023-09-25 09:24
Pikachu靶场记录
0x01 暴力破解
基于表单的暴力破解
没什么好说的,burpsuite找个字典直接爆破完事。
验证码绕过(on server):
刷新页面的时候,会向服务器的验证码接口发送请求,返回的是验证码图片和正确的验证码。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0l7PCz4Y-1648964430679)(C:\Users\lyu34\AppData\Roaming\marktext\images\2022-03-26-17-16-24-image.png)]
这里有两种思路,一个是采用爬虫不停请求最新的验证码,然后爆破提交就是了,太讨巧。比较重要的是另一种思路:tips提示的验证码不会失效,利用Repeater模块可以验证。
阅读源码可以发现请求服务器验证码接口后,服务器会把新的正确的验证码写在$_SESSION['vcode']
里,但是验证后不会及时把当前的验证码清空,而是依赖用户重新刷新页面,再次请求验证码接口后对$_SESSION['vcode']
覆写。
验证码绕过(on client):
验证码是js代码生成的,判断也是在前端判断。用burpsuite抓到一个登录的包,前端的验证码形同虚设可以随意绕过爆破。
token防爆破
这里有一个很有趣的bug,php5.2环境下token防爆破会失效,SESSION数组中如果关键字与其他变量同名,他们会共用同一片地址空间。这一特性来源于php.ini下的register_globals配置项,默认是开启的。在5.3被废止,5.4被移除。
0x02 XSS注入
反射型(GET&POST)
服务器直接把用户输入的变量拼接到返回的页面中,如果变量包含了js代码,就会被浏览器解析执行。
存储型
相较于反射型,多了一个存储的过程。用户输入->存储到数据库->读取数据库内容->输出到页面上。
DOM型xss
用户输入的变量被前端的js代码处理,修改了dom元素,如果输入变量中带有js代码,就会被浏览器解析执行。这个过程可以不经过服务器。
感觉有些鸡肋?
XSS之盲打
尽可能地于一切可能的地方提交XSS语句,只要后台管理员看到某一条语句,此语句就能被执行。可以在留言板上留下获取COOKIE的代码,只要管理员在后台看到,就能获取管理员的COOKIE。
XSS之过滤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6k0OEvfI-1648964430681)(C:\Users\lyu34\AppData\Roaming\marktext\images\2022-03-27-19-15-50-image.png)]
一定要使用
如果对输入点没任何处理:
结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHEvHbPz-1648964430682)(C:\Users\lyu34\AppData\Roaming\marktext\images\2022-03-28-19-54-08-image.png)]
0x03 CSRF(跨站请求伪造)
CSRF(get)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cx25mzcr-1648964430683)(C:\Users\lyu34\AppData\Roaming\marktext\images\2022-03-28-20-52-42-image.png)]
当前用户为vince,不知道kobe账户密码的情况下尝试诱骗对方修改kobe的个人信息
伪造的链接:
http://localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18626545453&add=chain&email=vince%40pikachu.com&submit=submit
kobe点击后,信息被修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJgPufA5-1648964430683)(C:\Users\lyu34\AppData\Roaming\marktext\images\2022-03-28-21-04-04-image.png)]
CSRF(POST)
换汤不换药。本质还是利用受害人的身份验证,向服务器发送伪造的请求。这次换一个链接,用户访问后向服务器发送修改个人信息的POST请求即可。这里的恶意链接对应的页面需要我们自己伪造。
CSRF(token)
这里展示token是如何防范csrf攻击的。通过一个临时的身份牌照,对每一次的敏感操作都做身份验证,只要生成token的算法足够复杂,就可以完全杜绝攻击者伪造的请求。
0x04 SQL注入
留个坑
0x05 RCE(远程命令/代码执行)
这部分我觉得靶场处理的不是特别好,因为太依赖php的动态特性了,显得RCE问题太过于简单。