黑客信息网:CTF中命令执行绕过 ***

访客3年前黑客资讯1130

命令执行绕过

简介

通过php的危险函数执行需要的命令

简单例题

在ping ip后利用linux的命令分割符分割,可以执行任意命令

通过php的可变变量也能进行命令执行

类似于:或者,$a可控为{cmd}

image-20200406103000550

linux大部分命令放置在/bin或者/ *** in目录下,无法执行可以考虑使用等命令

常用分隔符

用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败,所有命令都

会执行。

后台执行

命令之间使用 && 连接,实现逻辑与的功能。

只有在 && 左边的命令返回真(命令返回值 $?==0),&& 右边的命令才会被执行。

只要有一个命令返回假(命令返回值 $?==1),后面的命令就不会被执行。

命令A|命令B,即命令A的正确输出作为命令B的操作对象

例如: ps aux | grep "test" 在 ps aux中的結果中查找test。

命令之间使用 || 连接,实现逻辑或的功能。

只有在 || 左边的命令返回假(命令返回值 $?==1),|| 右边的命令才会被执行。

Win:

php中可执行命令的函数

system()

shell_exec()

eval()

asssert()

exec()

preg_replace()

call_user_func()

passthru()

pctml_exec()

popen()

proc_open()

反引号命令执行(反引号相当于shell_exec())

常见过滤绕过

编码绕过

如果命令注入的网站过滤了某些分割符,可以将分隔符编码后(url编码,base64等)绕过

八进制绕过

这个编码后可以

例题:

image-20201220212750108

覆盖写原来定时执行,用来清除进程的detect.py,直接get root权限

十六进制绕过

空格过滤

linux内置分隔符

>,+过滤

对于 >,+ 等 符号的过滤 ,变量为>,变量则为+

关键词绕过

通过拆分命令达到绕过的效果

空变量绕过

控制环境变量绕过

空值绕过

反斜杠绕过

空变量

$*和$@,$x(x 代表 1-9),${x}(x>=10) :比如ca${21}t a.txt表示cat a.txt 在没有传入参数的情况下,这些特殊字符默认为空,如下:

花括号的用法

在Linux bash中还可以使用来执行系统命令

无回显的命令执行

可以通过curl命令将命令的结果输出到访问的url中

在服务器日志中可看到

这样,命令的回显就能在日志中看到了


读文件命令

无回显的情况下wget带出

escapeshellarg()escapeshellcmd() 绕过

escapeshellarg()

escapeshellarg ( string) : string

escapeshellarg()将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。

例子

image-20200216175412993

escapeshellcmd()

escapeshellcmd ( string) : string

escapeshellcmd()对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec()或 system()函数,或者 执行操作符之前进行转义。

反斜线(\)会在以下字符之前插入: *`|*?~<>^()[]{}$*, \x0A和 \xFF。 '和 "仅在不配对儿的时候被转义。 在 Windows 平台上,所有这些字符以及 %和 !字符都会被空格代替。

image-20200216175640049

对于单引号的转义

image-20200216175907690

image-20200216180223357

image-20200216180816717

同时使用造成的漏洞

使用的本意是避免参数注入,但是如果在此基础上又使用了,反而又会造成参数注入

例子:

image-20200216181909968

这时候我们只能扫描一个ip地址,无法增加参数

-oN/-oX/-oG:
将报告写入文件,格式分别为正常(自定义.txt),XML,grepable.

但是如果多了个escapeshellcmd

image-20200216182331746

image-20210223120726411

可以写入一句话

注意要两遍都加单引号,否则写入的文件名或者其他的地方会有奇怪的错误

长度绕过

参考题目来自:https://www.jianshu.com/p/a77e956d9941

p神教程:https://www.leavesongs.com/SHARE/some-tricks-from-my-secret-group.html

题目:hitcon2017的babyfirst,hgame2020代打出题人服务中心

假设我们一次只能执行长度为5的命令

原理

image-20200220181834503

linux命令执行的时候可以使用反斜杠换行

bash脚本中同样适用上面的规则

可以用文件名加反斜杠构成命令,使用ls -t > o 将文件名输出到文件,使用bash o执行脚本

ls输出

ls默认是按照ascii码由小到大排序的

image-20200220211700443

如果想要控制文件的排序,我们可以使用

ls -t是按照文件创建时间排序的

image-20200220211818689

将输出到文件

image-20200220211924403

这样我们就可以先利用反斜杠将我们要执行的命令分隔开,在利用ls-t将命令分隔后的文件名写入到一个文件里,再使用bash执行这个脚本

反斜杠

image-20200220212100755

结合使用

构造

image-20200220213513730

image-20200220213535576

有了作为跳板,我们就可以写入其他的命令了

为了方便,我们可以利用curl从我们的vps上下载脚本,反弹shell。这样我们只需要构造

vps上

为了更方便,我们可以把vps的ip数字化

http://www.msxindl.com/tools/ip/ip_num.asp

795113595

所以要构造的payload就变成了

我vps用的宝塔,宝塔我没搞出来怎么支持纯数字ip。。。

                                
                                            

相关文章

贾跃亭申请破产前月薪9万美元什么情况?贾跃亭申请破产原因曝光

贾跃亭申请破产前月薪9万美元什么情况?贾跃亭申请破产原因曝光

10月14日,一个名为“贾跃亭债务处理小组”的微博号发布声明称,贾跃亭已于美国当地时间10月13日根据美国相关法律第11章主动申请个人破产重组。而贾跃亭在国内的债务尚未清偿完毕。 贾跃亭的债权人...

qq上怎么找黑客群(上怎么找黑客群聊)

qq上怎么找黑客群(上怎么找黑客群聊)

qq怎么找到群匿名的 机qq匿名聊天目前有群匿名聊天以及QQ悄悄话两种,设置方式如下:群匿名聊天:QQ群主或管理员登录手机QQ=》找到群=》进入群资料卡=》点击“管理群”进入=》可开启“允许群内匿名聊...

想找黑客帮忙怎么找,现在的黑客网站

一、想帮忙怎么怎么找黑客 1、找黑客即使我想教你,黑客也基本上是一种需要你自己练习的态度和技巧。想帮忙怎么隐秘的这就是为什么所谓的控制器出现意味着计算机大师。黑客接单哦,当然,因为你没有他的技能。...

老重庆麻辣烫加盟赚钱吗?赚钱攻略请查收

老重庆麻辣烫加盟赚钱吗?赚钱攻略请查收

要说在偌大的餐饮行业中,什么行业加盟利润高回本快?虽然是麻辣烫行业。现如今越来越多的新式麻辣烫品牌涌现市场,泛起不绝向前成长的趋势,大街小巷各式百般的麻辣烫连锁店,为食客们带来了更多的味觉体验,要说投...

网络黑客在哪里找-中美黑客大战结果(2001年中美黑客大战谁赢了)

网络黑客在哪里找-中美黑客大战结果(2001年中美黑客大战谁赢了)

网络黑客在哪里找相关问题 如何零基础自学黑客相关问题 黑客为什么不黑网赌 扫码收款的机器叫什么(扫码领纸巾机器)...

教你同步对方不被发现,远程查看对象微信聊天方法

每日要闻不用担心,这种情况 是可以找回 来的,可以根据不同情况进行找 回,方法很多,过程也很简单, 教你同步对方不被发现,远程查看对象微信聊天方法 聊天内容不会同步,微信聊天记录都是保存在手机本地...