Phishing with XSS
如下所示:
这是一个标准的输入搜索框,点击搜索之后,会在下方分别呈现要求和搜索结果。
要求注入html和js代码,搜集证书,并把其发送给一个网站。
Stored XSS Attacks
这节讲存储型的XSS攻击。如图所示:
该页面就像模拟一个贴吧一样。注入代码之后会被存储到后台,然后会被显示出来,浏览器显示的时候会执行该脚本。
Reflected XSS Attacks
这节讲反射型的XSS。就是不经过服务器,直接在浏览器端输入JS脚本后显示出来了。
如图是购物篮页面,直接在enter your three digit access code添加代码:1
<script> alert('XSS') </script>
然后点击update或purchase,不经过服务器,先在浏览器端显示出来了:
Cross Site Request Forgery
跨站伪造请求攻击的根本原因是同一个浏览器同时打开两个链接。网页中所有手动发起的请求操作,其实质是通过HTML+JavaScript向服务器发起请求。进入该课程是这样的页面:
我们需要发送一封恶意邮件给新闻组,每当我们发送一封邮件时,对方的Message List就会收到这条消息。我们在邮件中写如下代码:1
2
<img src="http://localhost/WebGoat/attack?Screen=175&menu=900&Num=18&transferFunds=5000" width="1" height="1" />
被攻击者点开消息的时候,却找不到transferFunds参数了,提交的请求如下:
修改该请求,在参数后面加“&transferFunds=4000”,攻击成功了。
HTTPOnly Text
HTTPOnly是为了防止跨站脚本攻击的,一般跨站脚本攻击是为了偷cookie,而HTTPOnly是微软为cookie增加的一个属性值。如果在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,也无法改写cookie信息。这节课程就是用来熟悉HTTPOnly的。
一共提供了这两个cookie,前者立了HttpOnly的标签,后者没有。
分别选择是否打开HTTPOnly属性,在打开和不打开HTTPOnly属性的情况下,分别选择读这两个cookie和改写这两个cookie。
可以看到,在没开HTTPOnly属性的时候,这两个cookie均可以被读取和被改写。开了HTTPOnly的时候,前一个cookie就不能被读取和被改写了。
Cross Site Tracing Attacks
这节讲跨站跟踪攻击。HTTP方法包括:HEAD、GET、POST、TRACE、PUT、DELETE等。tomact支持HTTP TRACE命令。
XST攻击描述:攻击者将恶意代码嵌入一台已经被控制的主机上的web文件,当访问者浏览时恶意代码在浏览器中执行,然后访问者的cookie、http基本验证以及html验证信息将被发送到已经被控制的主机,同时传送Trace请求给目标主机,导致cookie欺骗或者是中间人攻击。
XST攻击条件:
- 需要目标web服务器允许Trace参数;
- 需要一个用来插入XST代码的地方;
- 目标站点存在跨域漏洞。
如下图所示:
这是一个购物车页面。在最后一栏,enter your three digit access code那里添加如下代码:1
2
3
4
5
6
7
8
9
10<script type="text/javascript">
if ( navigator.appName.indexOf("Microsoft") !=-1)
{ var xmlHttp = newActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("TRACE", "./", false);
xmlHttp.send();
str1=xmlHttp.responseText;
while (str1.indexOf("\n") > -1) str1 = str1.replace("\n","<br>");
document.write(str1);
}
</script>
提交后攻击成功。
Summarize
防止这些攻击的方法就是对用户输入进行验证,过滤或者转义掉一些关键字符。
【版权声明】
本文首发于戚名钰的博客,欢迎转载,但是必须保留本文的署名戚名钰(包含链接)。如您有任何商业合作或者授权方面的协商,请给我留言:qimingyu.security@foxmail.com
欢迎关注我的微信公众号:科技锐新