您当前的位置: 首页 > 

姜小孩.

暂无认证

  • 6浏览

    0关注

    51博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

xss和csrf总结学习

姜小孩. 发布时间:2021-12-26 20:27:04 ,浏览量:6

目录

前言:

区别:

XSS篇!!!!!

漏洞简介:

分类:

注入点:

绕过:

1.大小写混合

2.复写

3.标签测试

4.尝试使用错误的事件查看过滤

5.编码转换

6.加入混淆字符

7.代替空格

8.引号的使用

CSRF篇!!!!!

漏洞简介:

分类:

利用:

前言:

断更的原因是期末考试压身。本来我是想学CSRF,但是看到他和XSS很像,我就想到我XSS好像没学太好,只是做了做题。那正好就两个一起学对比一下,关于这两种漏洞做题记录,就再等等吧哈哈哈

区别:

这两种漏洞是有区别的。依我来看,csrf可谓是假传圣旨,利用盗取的账号做一些事情。xss是骗皇上下圣旨,得到你的小饼干,然后得到登陆你账号的权限或者记录你键盘鼠标的操作,换句话说,csrf是借用小饼干干坏事(本质上并没有得到小饼干),而xss是盗取小饼干干坏事。

如果还不李姐的话,那就比喻成xss:城门已破,黑客带着各种武器在城内为所欲为,为所欲为。而csrf:城门未破,黑客仅能通过借用户的通行令牌进入城内做些小偷小摸。

XSS篇!!!!! 漏洞简介:

XSS漏洞叫做跨站脚本攻击,是指攻击者向Web页面插入Script代码后,用户浏览该页时,嵌入其中的Web里面的Script代码会被执行,从而达到攻击用户的目的。

XSS漏洞通常是通过php的输出函数将JavaScript代码输出到HTML页面中,通过用户本地浏览器执行的,所以XSS漏洞关键就是寻找参数未被过滤的输出函数

常见的输出函数有: echo printf print print_r sprintf die var-dump var_export

分类:

xss攻击分成三类:反射型,存储型和DOM型。

反射型:反射型是不持久的,攻击者需要先构造好攻击链接,然后欺骗用户自己去点击链接触发xss代码(xss代码并没有存在于服务器中),一般容易出现在搜索页面。(浏览器->后端->浏览器)

存储型:存储型顾名思义,是可以储存在服务器中的持久化攻击。一般出现在,个人信息,发表文章和留言板等地方,如果过滤不严将这些代码储存到服务器中,每当有用户访问该页面,该代码都会被触发执行,所以存储型很危险。(浏览器->后端->数据库->后端->浏览器)

DOM型:他为什么叫DOM型,因为它是基于文档对象模型(Document Objeet Model,DOM)的漏洞。DOM是一个与平台和编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为页面显示的一部分。DOM中有很多对象,其中一些使用户可以操纵的,如uRI,location,refelter等,客户端的脚本程序可以通过DOM动态的检查和修改页面内容,它不依赖于提交数据到服务器端,而是从客户端获取DOM中的数据在本地执行。如果DOM中的数据没有经过探戈的确认,就会产生DOM XSS漏洞。(URL->浏览器)

注入点: 注入点示例HTML元素内容
内容用户
HTML元素属性URL请求参数http://server.com?search=用户内容CSS值color:用户内容JavaScriptvar name="用户内容"

案例:

某人搭建博客需要一个搜索功能,根据URL参数决定关键词的内容,他很快写好然后上线。代码如下:


搜索
您搜索的关键词是:

然后第二天,他就收到了一个神秘链接:http://xxx/search?keyword=">alert('XSS');;他打开了这个链接,网页弹出了“XSS”的对话框(请勿模仿,不明链接不要随意打开)。在这个攻击案例中,服务器端解析请求参数keyword并拼接到HTML中返回给浏览器,形成了这样的的HTML:

alert('XSS');">
搜索
您搜索的关键词是:">alert('XSS');

这个弹窗并没有什么实际的意义,但通过它我们知道输入javascript代码是可以被执行的,当我们输入一些其他函数,比如document.cookie就可以成功盗取用户的cookie信息,或者读取用户浏览器信息等,为我们进一步深入攻击做铺垫。聪明的程序员很快找到了解决方法,修复漏洞:


搜索
您搜索的关键词是:

escapeHTML()按照如下规则进行转义:

字符转义后的字符--&&>""''//

经过转移函数的处理后,最终浏览器接收到的响应为:


搜索
您搜索的关键词是:"><script>alert('XSS');</script>

这样就安全了?当然不!!No system is safe!不久后又有人发来了链接http://xxx/?redirect_to=javascript:alert('XSS')。打开页面后没有弹出xss,这样就安全了嘛?程序员查看源代码,发现多了以下内容

跳转...

虽然代码不会立即执行,但是当用户点击fuck标签时,浏览器就会弹出“XSS”。有些人会说这还不好解决?

// 禁止 URL 以 "javascript:" 开头
xss = getParameter("redirect_to").startsWith('javascript:');
if (!xss) {
  
    跳转...
  
} else {
  
    跳转...
  
}

只要url的开头不是JavaScript就安全了吧!没想到神秘人又发来了http://xxx/?redirect_to=jAvascRipt:alert('XSS')。好吧,我服了……

绕过: 1.大小写混合
alert(1);
2.复写
alert(1)
3.标签测试
Clickme
4.尝试使用错误的事件查看过滤
ClickHere
5.编码转换

8进制、10进制、16进制混合转换,组合越多,绕过方法越妙(sao)

6.加入混淆字符

比如Tab符、换行符、回车符,绕过关键字过滤,比如:

click
7.代替空格

内联注释/**/可以代替空格

左斜线/可以代替空格

8.引号的使用

HTML 语言中对引号的使用不敏感,对于html可以使用双引号、单引号,或者不使用引号

左斜线可以代替引号比如"xss"可以用/xss/代替

CSRF篇!!!!! 漏洞简介:

CSRF(Cross-site request forgery),也被称为:one click attack/session riding,中文名称:跨站请求伪造,缩写为:CSRF/XSRF。

简单来讲就是你打开这恶意网站,然后再打开别的网页的时候你的小饼干会被盗取,举个栗子,你向别人转账十块钱如果是GET型传参是?money=10&name=hacker(当然现实中不会是GET型……),恶意代码得到了你的小饼干,然后可以通过改这个参数给他自己转钱,比如改为?money=10000&name=jiangxiaohai这样他就用你的账户给他转了一万块

分类:

CSRF攻击主要分为两种类型GET型和POST型

利用:

检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

burp里面有CSRF利用的工具

关注
打赏
1652274937
查看更多评论
立即登录/注册

微信扫码登录

0.4230s