WAPWebApplicationSecurity(WAP入侵)

[复制链接]
查看239 | 回复0 | 2012-4-1 19:19:29 | 显示全部楼层 |阅读模式
0×01WML与WMLScript
现在大多数WAP网站的页面都是使用的WML,也有使用XHTML的,不过用的比较少,所以本文主要还是讨论WML。

WML是WirelessMarkupLanguage(无线标记语言)的缩写,它同HTML类似,都是网页标记语言。不过HTML是让我们在电脑上用IE或firefox等浏览器进行阅读的,而WML语言则是专为手机等一些无线终端使用的。

当然,Opera浏览器目前是支持WML的,比如你可以使用Opera打开百度的WAP主页:http://wap.baidu.com,但你用IE、firefox就看不到正常页面。

如果你的手机支持WAP上网的话,它的浏览器就是支持WML的。呃,或许您早就用手机浏览过WAP网站了吧。

嗯,一个简单的WML网页代码如下:
 
[pre]<?xml&nbsp;version=&rdquo;1.0&rime;?>&nbsp;<!DOCTYPE&nbsp;wml&nbspUBLIC&nbsp;&ldquo;-//WAPFORUM//DTD&nbsp;WML&nbsp;1.1//EN&rdquo;&nbsp;&ldquo;http://www.wapforum.org/DTD/wml_1.1.xml&ldquo;>&nbsp;<wml>&nbsp;<card&nbsp;id=&rdquo;no1&rime;&nbsp;title=&rdquo;Card&nbsp;1&rime;>&nbsp;<p>Hello&nbsp;world!</p>&nbsp;</card>&nbsp;</wml>&nbsp;[/pre]
用支持WML的浏览器访问以上页面就可以看到Helloworld字样。

不管是HTML还是WML,这些都是前端展示页面,其实它们的后台都是一样的,都可能是ASP、PHP、JSP或者ASP.Net,所以后台程序面临的安全问题还是SQL注入那些,本文不讨论。



呃,更多的关于WML语法请参考这里:http://www.w3school.com.cn/wap/index.asp

如果我们把WML比作HTML,那么有没有可以比作Javascript的WAP脚本语言呢?有,它就是WMLScript。不过同JS比起来,WMLScript功能上要弱很多,有兴趣可以看看这里:http://www.w3school.com.cn/wmlscript/index.asp
&nbsp;
0&times;02WML注入攻击
HTML页面面临的一个大的安全风险就是XSS,那是因为输出到页面的参数没有被妥善的处理导致攻击者可以向页面注入HTML或者Javascript代码。

类似的,对于后台程序处理到的参数如果没有做好处理,WML页面也可以被注入任何数据,这种方式可以叫做WML注入(WMLInjection)。

好,看一个简单的例子,有这样一个PHP代码(为了更好的演示,假设magic_quotes_gpc=off):
&nbsp;
[pre]<?PHP&nbsp;header(&ldquo;Content-Type:&nbsp;text/vnd.wap.wml&rdquo;);&nbsp;echo&nbsp;&ldquo;<?xml&nbsp;version=&rdquo;1.0&rdquo;?>&rdquo;;&nbsp;?>&nbsp;<!DOCTYPE&nbsp;wml&nbspUBLIC&nbsp;&ldquo;-//WAPFORUM//DTD&nbsp;WML&nbsp;1.1//EN&rdquo;&nbsp;&ldquo;http://www.wapforum.org/DTD/wml_1.1.xml&ldquo;>&nbsp;<wml>&nbsp;<card&nbsp;id=&rdquo;no1&rime;&nbsp;title=&rdquo;Card&nbsp;1&rime;>&nbsp;<p>Hello&nbsp;<?PHP&nbsp;echo&nbsp;$_REQUEST['a']?>!</p>&nbsp;</card>&nbsp;</wml>&nbsp;[/pre]
呵呵,很明显,参数a没有被转义就直接输出到页面了,一个WML注入漏洞就产生了。
&nbsp;
*
*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则