读书笔记/白帽子讲web安全【xss】

来源:互联网 发布:spark python 环境搭建 编辑:程序博客网 时间:2024/05/01 13:53

以下内容为个人阅读白帽子讲web安全一书xss篇的一些总结记录~

0X01.xss根据效果不同可以分为以下三种:

1.”非持久型XSS”

非持久型指的是反射型XSS,指的是仅仅简单的将用户信息反弹给浏览器,也就是说,黑客需要诱导用户点击一个恶意链接,才能攻击成功

2.”持久型XSS”

持久型XSS指的是储存型XSS,举个例子就是,黑客写下一篇文章,包含有一段隐藏的恶意JS代码,当有用户点击这篇文章时,他们的浏览器就会执行那段恶意代码。因为黑客的恶意代码是保存在服务器上的,所以又叫做储存型XSS

3.DOM Based XSS

这是按存储方式来说算反射型XSS的一种特殊XSS,按照我的理解,可以解释为,类似于sql注入时的操作,对于页面的js代码进行闭合,来构造新的一些代码,达到攻击的目的,但也还是要伪造链接让被害者点击才能达到攻击效果

0X02.COOKIES劫持

构造一个链接:url?abc=’>,这样你就可以在你的远程服务器日志中看到其访问时带的cookie,或者你可以在该js中加上代码,将用户访问时的document.cookie发送到你的服务器上给记录下来

注:一般使用cookie为用户身份牌

0x03.构造XSS payload

1.通过http协议的get和post方式来构造

书上给的是豆瓣的例子,可能是截图是2010吧,现在豆瓣不行了,https协议没法抓包,,提交js无效,另找了一个http的网站,bp抓包更改关键词message内的信息即可,依旧js传入无法执行,可能和现在的waf都拦截js有关吧,暂时没找到一个有xss洞的网站去验证

理一理下这里的思路吧,这里利用的还是反射型xss,在有xss漏洞的地方,构造链接去让用户点击,值得注意的点是,根据连接需要的参数的不同,要使用document等js语言去获取这些不同的信息,拿到这些信息,攻击者就可以模拟受受害者为所欲为了

2.XSS钓鱼

书中提到了拦截js的一些办法,比如验证码,比如更改密码时要求输入的老密码,等等,这些都会影响恶意js代码的执行,但,这时候,黑客又提出了一种新的js攻击方法-钓鱼其实思路也很简单,可以这么理解,在我们的日常生活中,访问网站,有些会以弹窗形式让你填写账号密码,而这点我们完全可以自己做到,在xss漏洞存在的网站,我们可以伪造链接给用户,当其打开链接的时候,神不知鬼不觉的伪造弹窗,用户习惯性填写账号密码,这样就被我们获取到了资料

3.识别用户浏览器,本地软件等信息

最简单的当然是通过截取用户user-agent(http参数)来获取浏览器的一些参数,但是,我们都知道,其可以更改,这里就需要利用js的window.activexobject方法了,查了下资料,点这里,可以去看看

这里还可以了利用js获取浏览器插件,点这里,

书中提到,flash.system.Capabilities 对象可通过其获取电脑的硬件基本数据,点这里(不确定还可以不,这几年的资料没搜索到)

4.css利用

js对css利用,其访问过的链接颜色不一样来判断用户历史记录,这个现在浏览器都已经处理了,可忽略~

5.获取用户真实ip

文中提到了对java插件的利用,不过这个得根据用户安装的不同产品,软件来确定具体方法了

6.xss worm

文章介绍了samy worm(注:世界第一个XSS蠕虫病毒),推荐一个博客,点这里,详细分析了这个蠕虫病毒
核心点:一般来说,用户之间发生交互行为的页面,如果存在存储型XSS,则比较容易引起XSS Worm攻击(比如说发送站内信或者用户留言的页面)

0x04 xss构造技巧

书中介绍了一些xss的构造,,,,下次继续~