XSS学习笔记1

一、基础知识:

1.学习前需要先掌握HTML,Javascript,php(或者asp)。推荐学习基础知识的网站:http://www.w3school.com.cn/index.html。不需要精通,能看懂网页代码并且简单能进行简单编辑就好了。

2.需要自己去理解Cookies的原理和特点,百度百科对Cookies解释:http://baike.baidu.com/link?url=AK-j7WsMxVN7XO52f1sBCaRTmaGlYCJIvyYAysNQ6N_g3mLka9N0VfOmJULjdC300GVlJQpqBHjxN0ZR1IXwImMR4IwIOXXEZZejpzlOKKq

3.跨站脚本(XSS)概念:可以理解为一种Web应用程序中的计算机安全漏洞。攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。


二、配置环境:

1.首先需要自己配置Web服务器,推荐的服务器环境是Apache+php,我用的是软件xampp,能够键配置Apache+php。下载xampp地址为:https://www.apachefriends.org/zh_cn/index.html

2.用到的工具有:DreamweaverNodepad++firefox浏览器

Dreamweaver是网页编辑器:编辑的代码能够直观的在软件中看出结果,并且能够快速创建html文件,php文件等,我个人比较喜欢。可以用Notepad++来代替。Notepad++是代码编辑器:是一个文本编辑器,比Windows自带的记事本强大很多,推荐使用。

Firefox是我个人比较喜欢的浏览器,其他浏览器也行。


三、实验过程:

1.开启xampp中的apache和SQL,即开启服务器环境:

XSS学习笔记1_第1张图片


首先编写一个用户登录的html代码,和获得用户输入信息的php代码






testforxss


usename:
password:


";
echo "password:",$password;
?>

 
  

为了方便挖掘XSS漏洞,我是通过“GET”方法从表单中进行消息的发送,因为通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)通过 POST 方法从表单发送的所有名称/值会被嵌入 HTTP 请求的主体中

 

在浏览器地址栏中输入URL”http://localhost/test1/test1.html”得到下图结果:

 XSS学习笔记1_第2张图片

输入测试用的用户和密码:

XSS学习笔记1_第3张图片

提交后得到:

XSS学习笔记1_第4张图片

得到正确的账户和密码,测试成功,说明配置环境跟代码都能成功使用,下面开始我的学习之路!

2.发掘一些简单的XSS漏洞

(1)如果在password”里输入的不是简单的数字和字母,而是一段XSS代码,如输入“”,提交后将弹出一个对话框警告用户。如下图:

XSS学习笔记1_第5张图片

XSS学习笔记1_第6张图片

分析:password输入的是一段javascript代码,两个标签之间alert()函数将弹出一个对话框警告用户。

(2)直接在浏览器的地址栏上输入:http://localhost/test1/test1.php?usename= &password=1  。同样也能得到对话框警告。

分析:URL的对象是test1.php,而URL中已经含有test1.php文件所需要的usenamepassword的值,所以能够该地址是合法的,同时usename输入的是一段JS代码,这段代码能弹出一个对话框,就得到上图的结果。(通过“?”来连接php文件和输入的变量)

(3)php文件中,如果不是直接把用户名进行输出,而是先放到input元素中,代码如下

//echo "usename:",$usename,"
";注释本来的usename输出 echo '',"
"; echo "password:",$password; ?>

 
  

网页中,如果直接在usename输入:      将不会得到对话框警告,而是直接把结果进行输出:

XSS学习笔记1_第7张图片

分析一下test1.php的代码,发现用变量xss获得usename的值以后,并不是直接输出结果,而是先放到input元素的value中,这样的话输入的结果当然是“”,而不会弹出提示框。

如果我们在这段XSS代码前面加上:”>  ,就是在usename输入代码 ">   ,将能弹出提示框。

分析:查看一下页面源代码,发现了这段代码:">  。发现开始输入的XSS代码中的第一个“>”直接就关闭了input标签,这样子script标签里的alert函数就能弹出提示框了!

同理,我们在挖掘其他网站的XSS漏洞时,如果能得到页面的源代码,然后分析代码中对我们输入的数据是怎样的处理,闭合其中的标签,理论上就能挖掘到相应的XSS漏洞

(4)除了使用将不会弹出提示框,如下图:

XSS学习笔记1_第9张图片

XSS学习笔记1_第10张图片


可是JS代码对大小写不敏感的,所以我们可以用“

将能得到提示框!


或者,既然&password=1

链接分析:在usename里注入一段XSS代码,访问能盗用用户cookie的网站,即是访问test3.js,而test3.js我前面分析了将能盗取用户的cookie

 

用户点击链接后,出现如下画面,此时我已经成功获得cookie。



此时我查看我的服务器,将会出现一个新的文件:cookie.txt

XSS学习笔记1_第11张图片


Notepad++打开该文件:

XSS学习笔记1_第12张图片


发现已经得到漏洞网站上一名用户的cookie了!

接着只要利用得到的cookie去登录网站,就能进行相应的cookie会话攻击。


盗取Cookie攻击方式分析:首先 添加相应的代码到自己的服务器文件中(比我上面的test3.php和test3.js),然后挑一个网站,挖掘XSS漏洞,最后设置相应的URL链接,只要其他用户点击了该链接,就会把用户的Cookie发送到我的服务器文件中。

把这个链接放在各种论坛的评论里,并取一个吸引人的名字,只要有注册了该漏洞网站的用户点击了我的链接,他的cookie就会发送到我的服务器上!从而成功盗取用户的cookie


你可能感兴趣的:(XSS学习笔记)