码迷,mamicode.com
首页 > 系统相关 > 详细

CTF Linux 命令执行常规bypass

时间:2019-09-11 23:56:34      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:php   aaa   分析   输入   了解   实体   打包   软连接   blog   

截断符

常见的RCE的形式是给一个ping的命令执行,只需要输入ip,然后返回ping ip的输出信息

技术图片

 

 常见的用来截断的符号 &  &&  ;  |  ||

windows或linux下:

command1 && command2 先执行command1后执行command2 command1 | command2 只执行command2 command1 & command2 先执行command2后执行command1

  

|

技术图片

 

&&

 技术图片

 

 ;

技术图片

 

 &

技术图片

 

 ||

技术图片

 

 

通配符

Bash标准通配符(也称为通配符模式)被各种命令行程序用于处理多个文件。有关标准通配符的更多信息,请通过键入man 7 glob命令查看手册了解。并不是每个人都知道有很多bash语法是可以使用问号“?”,正斜杠“/”,数字和字母来执行系统命令的。你甚至可以使用相同数量的字符获取文件内容。这里我为大家举几个例子:

?匹配所有字符中的一个,例如find -name "aa?" 可以匹配到aaa,aab,aac等

例如cat命令我们可以通过以下语法代替执行:

/???/c?t REE.py

技术图片

 

匹配的很乱,因为在自己的kali中。然而在ctf环境中往往环境没那么复杂,很容易匹配到/bin/cat命令。

CTF中可以用fla?来匹配flag

技术图片

 

 

特殊符号和命令

上面图片中出现了${IFS},pwd 还有grep,tail,tac

${IFS}在bash中可以绕过对空格的过滤,而pwd在bash中是当前目录

grep -r 字符串  正则匹配字符串

taill xxx 动态查看文件,如果写入文件,可以看到动态的结果

taic xxx 倒序查看文件,与cat的查看顺序相反

技术图片

 

 在我的这篇2018安恒杯11月赛笔记中还发现了一种很有趣的方式

利用expr截取到字符串这里呢,

$IFS可以表示为空格,pwd是当前位置的绝对路径,expr可以抓取字符,expr语法中反斜杠\放在shell特定的字符前.具体的payload如下http://101.71.29.5:10015/index.php?p=cat$IFSflag2333expr$IFS\substr\$IFS\$(pwd)\$IFS\1\$IFS\1flag.php么来具体解释下把,执行的结果是 cat/flag2333/flag.php,怎么做到的呢,结果我上面分析的,substr $(pwd) 1 1的意思是,从绝对路径的第一位取一个字符,呢么绝对路径的第一个字符一定是/,所以绕过了对/的过滤,很神奇

技术图片

 

 

软连接

学习自https://www.anquanke.com/post/id/166492#h2-3

软链接(也叫符号链接)

类似于windows系统中的快捷方式,与硬链接不同,软链接就是一个普通文件,只是数据块内容有点特殊,文件用户数据块中存放的内容是另一文件的路径名的指向,通过这个方式可以快速定位到软连接所指向的源文件实体。软链接可对文件或目录创建

当只允许上传tar文件时,并且可以访问的话,我们可以用软链接来getflag

ln -s /etc/passwd 222222.jpg
tar cvfp 1.tar 222222.jpg  

第一行命令:设置22222.jpg软链接到/etc/passwd

第二行命令:将22222.jpg打包成1.tar

技术图片

 

 访问getshell

 

CTF Linux 命令执行常规bypass

标签:php   aaa   分析   输入   了解   实体   打包   软连接   blog   

原文地址:https://www.cnblogs.com/BOHB-yunying/p/11509430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!