想看高明的技术型黑客是怎么入侵的吗?下面就是。最近5年使用过电脑的人们都知道统一资源标识符,这是在网上冲浪时,你所喜爱的浏览器的地址栏上出现的文字串,通常是这种形式:“http://www.somethingorother.com”。
从更技术性的角度来讲,RFC 3986描述了URI(及其子集,包括更常用的术语统一资源定位符(URL))的结构和语法。根据RFC 3986,URI由如下部分组成:
scheme://authority/path?query
用更常用的术语来解释,URI描述用于访问服务器(authority)上的一个资源(path)或者应用(query)的协议(scheme)。对于Web应用来说,协议几乎都是HTTP(最重要的例外是HTTP的“安全”版本HTTPS,在这种协议中,会话数据受到SSL或TLS协议的保护;更多的信息参见“参考和延伸阅读”)。
警告 标准HTTPS(无客户端验证)除了使客户端和服务器之间的通信更难以窃听和干扰以外,对Web应用的整体安全性没有任何作用。
服务器是一台或者多台运行HTTP软件(通常由其DNS名如www.somesite.com指定)的计算机,路径(path)描述了应用文件所在文件夹或者目录的层次结构,而查询包含了需要传递给服务器上保存的应用可执行文件的参数。
注意 URI中“?”右边的部分称作查询串。
HTTP客户端(通常是Web浏览器)简单地请求这些资源,服务器对此做出响应。我们在喜爱的浏览器中都看过上百万次,所以无需赘言。下面是一些示例:
http://server/file.html
http://server/folder/application?parameter1=value1¶meter2=value2
http://www.webhackingexposed.com/secret/search.php?input=foo&user=joel
正如我们在前面所说的,Web入侵不过是以巧妙的方式操纵URI。下面是这种操纵的一些简单示例:
https://server/folder/../../../../cmd.exe
http://server/folder/application?parameter1=aaaaa...256 a's...]
http://server/folder/application?parameter1=<script>'alert'</script>
如果你能猜出这些攻击的所作所为,那么你已经是一位专业的Web黑客了!如果你还看不出来,我们很快将为你详细说明。首先,我们需要澄清一些细节。