Pikachu 靶机练习
- 1、暴力破解
- 1.1 基于表单的暴力破解
- 1.2 验证码绕过(on server)
- 1.3 验证码绕过(on client)
- 1.4 验证码绕过(token 防爆破)
- 2、Cross-Site Scripting-XSS
- 2.1 反射型(get)
- 2.2 反射型(post)
- 2.3 存储型xss
- 2.4 DOM型xss
- 2.5 DOM型xss-x
- 2.6 XSS之盲打
- 2.7 XSS之过滤
- 2.8 xss之htmlspecialchars
- 2.9 xss之href输出
- 2.10 xss之js输出
- 3、CSRF
- 3.1 CSRF(get)
- 3.2 CSRF(post)
- 3.3 CSRF(token)
- 4、Sql Inject(SQL注入)
- 4.1 数字型注入(post)
- 4.2 字符型注入(get)
- 4.3 搜索型注入
- 4.4 xx型注入(这是????)
- 4.5 insert/update注入
- 4.6 delete注入
- 4.7 http头注入
- 4.8 基于boolian的盲注
- 4.9 基于time的盲注
- 4.10 宽字节注入
- 5、RCE
- 5.1 exec "ping"
- 5.2 exec "eval"
- 6、file include
- 6.1 file include(local)
- 6.2 file include(remote)
- 7、unsafe filedownload(不安全的文件下载)
- 8、unsafe upfileupload(文件上传)
- 8.1 client check(客户端check)
- 8.2 client check(Mime type)
- 8.3 getimagesize
- 9、Over Permission
- 9.1 水平越权
- 9.2 垂直越权
- 10、目录遍历
- 11、敏感信息泄漏
- 12、PHP反序列化
- 13、XXE
- 14、URL重定向
- 15、SSRF
- 15.1 ssrf(curl)
- 15.2 ssrf(file_get_content)
1、暴力破解
1.1 基于表单的暴力破解
抓包,加载字典。
1.2 验证码绕过(on server)
1.3 验证码绕过(on client)
1.4 验证码绕过(token 防爆破)
通过测试发现每个数据包的token在变化,尝试使用pitchfork进行爆破
具体设置如下:
选择pitchfork进行爆破,添加密码和token变量
因为token的变化需要修改线程数
在Grep - Extract 选项添加参数
在页面最低部找到always选项
回到payloads模块
正常添加第一个变量密码的字典
第二个变量选择递归搜索(Recursive grep)
Start Attack
2、Cross-Site Scripting-XSS
2.1 反射型(get)
从文本框输入发现限制了字符长度。
直接从url地址栏插入成功
2.2 反射型(post)
登录以后有一个文本框。
2.3 存储型xss
直接在留言板x
2.4 DOM型xss
在文本框输入了以后发现,查看源代码发现该语句被加成了超链接
将这里闭合以后利用onclick
2.5 DOM型xss-x
同4一样的套路闭合以后就行
2.6 XSS之盲打
见框就X
提交以后发现这里提示一段文字,应该是直接打到后台了,找一下后台登录进去看看
后台路径:http://192.168.20.100/pikachu/vul/xss/xssblind/admin.php
2.7 XSS之过滤
绕过有很多方法,可以尝试其他的,这里直接大写就可以 有些需要大小写混编
2.8 xss之htmlspecialchars
输入了常用的符号进行查看是否被过滤
这里还是用on事件就X进去了
2.9 xss之href输出
直接用js协议X
2.10 xss之js输出
在文本框输入script探探路
利用单引号和script标签进行闭合,构造XSS语句
3、CSRF
3.1 CSRF(get)
利用提示的账号和密码进行登录。
直接抓包查看下数据,从抓包的数据了解到 登录时没有用token进行验证,直接修改。
将add地址修改为cn,email修改为csrf@pikachu.com
修改好以后,新打开一个浏览器标签页,将完整url地址输入。
3.2 CSRF(post)
登录任意账户
从burp的数据包可以知道,所有参数是在请求体里面提交,伪造url方法就不能使用了,只能构造一个虚假页面,诱导用户去点击,从而引发攻击
将该页面放置于www服务下,登录任意账户,再新建窗口访问该页面
3.3 CSRF(token)
这里加入了token校验,那么就没办法再进行伪造了。
4、Sql Inject(SQL注入)
4.1 数字型注入(post)
直接抓包注
爆字段列数
查看数据库名和数据库用户
爆该库下所有的表
爆敏感表-users的字段
获取username和password的数据
对应账号和MD5加密的密码:
admin:e10adc3949ba59abbe56e057f20f883e(123456)
pikachu:670b14728ad9902aecba32e22fa4f6bd(000000)
test:e99a18c428cb38d5f260853678922e03(abc123)
4.2 字符型注入(get)
get直接注
跟字符型的一样,这里就直接爆数据了
4.3 搜索型注入
这个搜索型注入和字符型注入一样,唯一的区别就是有3列字段,直接爆数据了
4.4 xx型注入(这是????)
单双引号闭合都失败了,在后面尝试加了个括号就闭合成功了
直接就爆数据了!
4.5 insert/update注入
既然是插入和更新,那么应该是注册和更新的时候,在注册的时候抓包分析。
爆出所有的表名,发现不能全部显示
这里可以采用left,mid,right来进行分段显示,将得到的信息进行拼接
爆出字段名
爆出数据
4.6 delete注入
抓包查看下数据
跟之前的一样使用updatexml进行注入
4.7 http头注入
直接把user-agent给换成单引号就会出现报错,注入database查看数据库
跟之前的一样就不继续操作了
4.8 基于boolian的盲注
sqlmap跑的嗷嗷的
4.9 基于time的盲注
直接sqlmap梭哈
4.10 宽字节注入
抓包注
5、RCE
5.1 exec “ping”
5.2 exec “eval”
这个函数很危险,一般除了靶机能遇到,其他时候基本遇不到
6、file include
6.1 file include(local)
从这里看到读取了这个file1.php,在include里面创建一个phpinfo
6.2 file include(remote)
在php.ini配置文件打开这个选项
随便点一个查看,看到url的include。
7、unsafe filedownload(不安全的文件下载)
直接抓包查看下数据
修改这个filename的值,改为上级目录的phpinfo文件,然后通过repeater重发
将包释放,回到页面就发现弹出了下载页面,下载的就是这个phpinfo文件了。
8、unsafe upfileupload(文件上传)
8.1 client check(客户端check)
F12进入代码页面将onchange删除
8.2 client check(Mime type)
抓包将Type 修改为图片类型
重发然后放包,回到页面发现上传成功
访问给出的地址进行查看是否上传成功
8.3 getimagesize
抓包上传图片,在图片内容里添加phpinfo。
9、Over Permission
9.1 水平越权
这里用Lucy这个账户登录,在url看到了username,直接修改后面的用户名,修改成lili
9.2 垂直越权
用admin账户登录,将admin账户登录的url复制下来打开另外一个浏览器用普通账户登录以后再进行访问。
普通账户登录
复制admin添加账户的地址以后,会自动变成admin的账户,然后直接添加账户。
现在登录admin查看
10、目录遍历
概述这个栏目是dir.php文件
这里直接从title进行修改值
11、敏感信息泄漏
F12进入代码页面,选中文本框就出现了账号和密码
利用找到的账号密码,成功登录
12、PHP反序列化
payload:
O:1:"s":1:{s:4:"test";s:30:"<script>alert('fxlh')</script>";}
13、XXE
直接x
payload:
14、URL重定向
每个挨个点,在第四个会有一个url地址,修改这个值
将这个值修改为百度
15、SSRF
15.1 ssrf(curl)
直接将原url里面的值修改为百度
15.2 ssrf(file_get_content)
直接将url修改为你要读取的文件
到这里整个Pikachu就结束了,因为比较长所以有时候是在家,有时候在公司,所以会有两个ip。