web安全之XSS入门到精通

1、原理解释

1.1 什么是XSS

XSS是跨站脚本攻击(Cross Site Script) 。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。

XSS属于前端代码注入:用户输入的数据被当做前端代码执行,主要研究的是Js和如何触发Js,Js可以操控游览器。

1.2 XSS分类

1 )XSS 类型

存储型:存储型XSS又被称为持久性XSS,存储型XSS是最危险的--种跨站脚本。恶意语句->服务器->存储数据库内->服务器回显给任何访问者(无需用户交互)

反射型:反射型XSS也被称为非持久性XSS。 恶意URL->服务器->不经过数据库->服务器回显给点击恶意URL的人(需要用户交互)

DOM:基于DOM型的XSS是不需要与服务器端交互的,它只发生在客户端处理数据阶段。恶意语句->游览器>游览器解析

DOM的全称为DocumentObjectModel,即文档对象模型,Dom是Js用来操纵浏览器和网页显示内容的接口()。

  • document.body 提取Body信息
  • document.domain提取当前页面域名
  • document.lastModified返回页面时间  (检测页面是否是静态的)
  • document.write改变当前页面    接收native编码

下面是一段经典的DOM型XSS示例。

<script>

var temp = document.URL ;  //获取URL

var index = document.URL.indexOf ("content=") +4;

var par = temp.substring(index) ;

document.write(decodeURI(par) ) ; //输入获取内容

</script>

上述代码的意思是获取URL中content参数的值,并且输出,如果输入htp://www.secbug.org/dom.html? content =<scriptalert(xs)</script>,就会产生XSS漏洞。

2 )详细介绍

标签风格: <script>a</script>

伪协议触发: <a href=javascnipt如:alert(1)>1</a>

                    <a href="javascript:a" οnmοuseοver="alert(/xss/)">aa</a>

 <a href="" οnclick=alert('xss')>a</a>

 <a href="" οnclick=eval(alert('xss'))>aa</a>

事件方法:<img src=1 οnerrοr=alert (1)/>

              <img src="1" οnerrοr=eval("alert('xss')")>

              <img src=1 οnmοuseοver="alert(1)">

               //鼠标指针移动到元素时触发

               <img src=1 οnmοuseοut="alert(1)">

               //鼠标指针移出时触发

               οninput=alert(1)   //   oninput()是在input标签内输入内容触发

               οnfοcus=alert(1) autofocus //  焦点事件

一般结合短链接(网上短链接平台),将长的明显的URL生成短的隐藏的URL。

1.3 JS介绍

前端代码(开源)

             HTML:网页的框架

      css:把网站变的更好看

     Javascript (Js):让网页功能更强大

Js:

1、读取浏览器信息

2、偷偷发送数据包(异步传输)

3、他可以窃取cookie

[先读取你的cookie然后偷偷发送数据包给黑客,黑客收到cookie然后登录你的用户]

解析一篇 HTML 文档时主要有三个处理过程:HTML 解析,URL 解析和 JavaScript 解析。所以可以三种编码混合顺序来绕过。

二 XSS实战

2.1 XSS漏洞探测

1)输入特殊值

2)查看源代码

3)尝试弹窗

</h2></center><script>a</script>

发现弹窗失败,查看源代码,被HTML实体编码了

4)绕过

我们发现keyword关键字和搜索框内一样

检查元素发现是””闭合

输入”aaa

“也被编码了,无法闭合

(我们发现f12和右键查看源代码里的value后面不一致,一个是单引号,一个双引号。原因是游览器有兼容性,实质是单引号,看源代码的。)

用标签内的触发方式,使用事件:

' οninput=alert(1) />//                   oninput()是在input标签内输入内容触发

' οnfοcus=alert(1) autofocus //     焦点事件

2.2 XSS 平台

随着XSS漏洞的兴起,一些XSS漏洞利用框架也随之出现,其中比较优秀的有BeEF、XSS Proxy、Backframe。

XSS框架是一组“JavaScript工具集合”,比如,键盘输入记录、盗取Cookie、表单击劫持等。使用起来非常简单,完全不需要编写代码,这就是框架的作用。

这种平台有很多,可以找一个免费的.

(1)新建项目

https://i-blog.csdnimg.cn/blog_migrate/05b53bb87a7ef02768f587b398b859f0.png

(2)填写基本信息

https://i-blog.csdnimg.cn/blog_migrate/645e592627925061b94dbb658c04bb07.png

(3)很多xss利用代码,选择一个测试

https://i-blog.csdnimg.cn/blog_migrate/4c4252c200e3a48036e2b528dd0c1044.png

4)当有人访问了含有你的XSS代码的页面时,你的项目就会收到它的具体信息,包括cookie信息

三、高级利用

3.1 beef

(1)一个XSS利用神器,在kali中已经集成

https://i-blog.csdnimg.cn/blog_migrate/00b435c47040feaca262cd1f18eb42e8.png

(2)直接打开,出现两个网址:

https://i-blog.csdnimg.cn/blog_migrate/62075402e72481665dcd3650665b637f.png

第一个Web UI : 是beef在网页中打开的网址,访问它,用户名,密码都是beef。

(注意,你把网址中的127.0.0.1改成你机器真正的IP也可以登陆成功,kali中,ifconfig命令可以查看你的IP)

第二个Hook:使用来钓鱼的语句,把IP改成你真实的IP,如下图:

https://i-blog.csdnimg.cn/blog_migrate/8ff660d1f7b64a131c3712f28a1b05a2.png

(3)把钩子语句放到目标游览器的一个html页面里,等待受害者游览这个页面

发现上勾着(我的另一台虚拟机,别让游览器把JS语句禁止了)

https://i-blog.csdnimg.cn/blog_migrate/5a8805062a980ab8f7235ae20446f20e.png

工具的其它功能很多,不一一介绍,命令模块下可以执行很多shell命令

安全学习交流群:687398569

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值