web漏洞

一、xss

1、形成及原理
xss——跨站脚本攻击(Cross Site Scripting)
xss是一种注入式攻击,web对用户输入过滤不严格,攻击者写入恶意攻击脚本代码(如:HTML超文本标记语言、JavaScript直译式脚本语言)到网页中,如果用户访问该页面,就会受到攻击。

常见危害有cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos分布式拒绝服务攻击。
2、分类
反射型xss:一般出现在URL参数或网站搜索栏中,需要点击触发且只能触发一次,又称“非持久性xss“。
存储行xss:一般出现在网站留言板、评论处、个人资料处等一些需要用户对网站写入个人资料的地方。
      例如:一个论坛评论,对用户的输入过滤不严格,攻击者写入一段窃取cookie的恶意JavaScript代码到评论处,这个恶意代码就会被写入数据库,当用户浏览该页面时,网站从数据库中读取恶意代码到网页中被浏览器执行,用户cookie就会被窃取,攻击者无需受害者的密码就可以登陆账户,又称“持久性xss”。
dom型xss:基于脚本对象模型,前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行。常见可操纵dom的对象有URL,localtion,referrer等

二、CSRF

CSRF——跨站点请求伪造(Cross Site Request Forgery)
csrf会根据业务功能场景的不用而利用起来也不同,这些请求都是跨域发起的,而且是在受害者的session没有失效通过身份认证的情况下发生的。攻击者使用用户的登陆凭证,让用户自己在不知情的情况下,进行修改数据的操作。但是查询数据的地方却不需要保护,因为csrf是借助受害者的cookie来进行攻击者需要的恶意操作的,攻击者并不能拿到受害者cookie,对于服务器返回的结果也无法解析查看,攻击者唯一可以做的就是让服务器执行自己的操作命令,或者说改变网站数据,而查询操作即不会改变数据也不会把结果返回给攻击者,所以并不需要保护。
分类:
1、对网站管理员进行攻击:诱骗管理员点击存在漏洞的链接,执行增加删除网站管理账户的操作,从而进行下一步渗透得到网站shell权限。

2、修改受害网站上的用户账户和数据:对账户密码进行重置,改邮箱绑定,修改个人资料、个人设置,删除用户发布的文章帖子等。

3、账户劫持:修改密码处没有验证原有密码,无token验证,发送一个修改密码的链接即可。或者发送一个修改绑定邮箱的链接,在进行密码重置。

4、传播CSRF蠕虫进行大规模攻击:此类攻击发生的场景一般在SNS站点,批量关注、发微博、改个人资料处。
对于CSRF的防御
1、使用验证码:
csrf攻击一般都是在受害者不知情的情况下进行发起的,使用验证码可以有效的防止攻击吗,但是每次请求都要输入验证码会影响用户体验,所以通常只在用户登陆注册,还有一些特定业务场景下使用。
2、验证http Referer:http头中的referer字段记录了请求来源地址,比如从 http://www.test.com 点击链接到 http://m.test.com 之后,那么referer就是 http://www.test.com 这个地址。攻击者在对受害者进行攻击的时候,是在攻击者自己的服务器上构建自己的恶意脚本,诱骗受害者点击,所以此时的referer值就是攻击者自己的URL地址。
通过以上可知,csrf攻击都是跨域发起的,所以在服务端针对referer字段验证是否属于安全可靠的域名,可在一定程度上有效防御此类攻击。
3、使用token:csrf攻击成功的前提条件是攻击者可以完全伪造出受害者的所有请求,而且请求中的验证信息都在cookie中,黑客只要使用用户的cookie通过安全验证就可以完成攻击。了解了这些之后,想要防止csrf攻击,就要在http请求中放置黑客不可以伪造的信息,而且该信息不可以存在于cookie中,否则就无效。而token令牌最大的特点就是随机性,不可预测,并且不存在于cookie当中。

三、SSRF

SSRF服务端请求伪造(Server-Side Request Forgery)
是一种由攻击者构造形成由服务端发起请求的一个安全漏洞,正常情况下,我们无法从外网去访问一个公司的内部系统,但是如果服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。攻击者就可以利用该漏洞绕过防火墙等访问限制,进而将受感染或存在漏洞的服务器作为代理进行端口扫描,甚至是访问内部系统数据。
ssrf的攻击利用主要有以下几种:
1、内网、本地端口扫描,获取开放端口信息
2、主机信息收集,web应用指纹识别,获取服务banner信息
3、根据识别出的应用针对性的发送payload攻击,例如struts2
4、攻击内网和本地的应用程序及服务。
5、穿越防火墙
6、利用file协议读取本地文件,比如file:///etc/passwd

ssrf漏洞一般存在于以下几种web功能:

1、在线分享:通过URL地址分享网页内容
2、在线识图
3、在线翻译:百度翻译,有道翻译
4、各大网站订阅
5、图片加载与下载:通过URL地址加载或下载图片
6、图片、文章收藏功能
7、接收邮件服务器地址的邮件系统8、调用URL的功能
8、调用URL的功能
9、文件处理,如ImageMagick,xml
10、请求远程服务器资源,远程URL上传,静态资源图片文件等
11、数据库内置功能,比如mongodb的copyDatabase函数
12、从URL关键字中寻找:share,url,link,src,source,target,sourceURl,imageURL,domain...

漏洞验证方式:

1、右键图片在新窗口打开,如果浏览器地址显示为 www.xxx.com/xx.jpg 类似格式的,说明不存在ssrf漏洞,但是如果资源地址类似 http://www.xxx.com/1.jsp?image= 的格式就有可能存在漏洞。
2、另一种方式是使用抓包工具burp fiddler来判断,SSRF漏洞是构造服务器发送请求的安全漏洞,所以就可以通过抓包分析请求是否有服务端发起的来判断是否存在漏洞。

防御措施

过滤返回的信息,甚至必要情况下不返回
限制http端口,仅可使用http https
检查IP是否为内网IP,进行黑名单过滤
禁止不需要的协议,gopher,ftp,file协议等


扫描二维码关注公众号,回复: 3737102 查看本文章


本文章是我看web漏洞时,摘录编写的一些基础知识,看完后对此大概有些了解,但对于专业术语还是不懂,不过,我以后会去努力去学习的。





 



猜你喜欢

转载自blog.csdn.net/qq_41934929/article/details/79775438