请点击此处输入图片描述
跨站脚本攻击(XSS)
事理:

做事器没有对用户的输入做到充足的过滤,导致页面被嵌入恶意脚本
分类:
反射型:只能通过用户点击恶意布局的链接才能触发攻击
存储型:恶意代码保存在做事器,只要有人访问该页面就会触发攻击
效果:
通过获取用户的 cookie,实现会话挟制
通过在页面假造表单,获取用户的账号密码
XSS 蠕虫
实现办法:
在可提交的输入框中布局输入,有时须要闭合引号,中括号等,有时须要对输入进行编码以绕过 WAF。
一样平常情形下,手动查找 XSS 注入点常日须要结合查看网页的源代码,找到自己的输入涌如今了页面的哪个地方,然后根据该点附近的高下文布局恶意代码,比如,一个用 php 编写的页面为:
<? php $input = $_GET[\"大众param\公众]; echo \"大众<div>\"大众.$input.\公众</div>\"大众; ?>
在正常情形下,用户的要求会在页面中显示出来。但是如果供应给 param 的参数是一段 HTML 代码,那么浏览器就会将它当做代码解析实行
值得把稳的地方:
有时 web 程序会用转义字符的办法转义分外字符,然而,如果数据库利用的编码办法与 web 程序不同时,特殊是数据库利用的是双字节字符编码,而卖力过滤的 web 程序利用的是单字节字符编码,可能会导致过滤失落败。例如,数据库利用了 GBK 编码,而 web 运用利用的是 ASCII 编码,当用户输入 0xbf27 时,由于 27 是单引号 ',web 程序会将其转义,变成 0xbf5c27,但是在数据库中,由于利用的是 GBK 编码,会将 bf5c 认为是一个字符,从而再次暴露了单引号 '
HTTP 参数污染有时可以绕过 WAF 的过滤
跨站要求假造(CSRF)
事理:
由于
大略的身份验证只能担保要求发自某个用户的浏览器,却不能担保要求本身是用户志愿发出的
——维基百科
用户访问完某个网站之后,浏览器会在一定韶光内保存这个网站产生的 cookie,如果在这个 cookie 的有效期内,攻击者可以利用浏览器再次访问网站时会自动带上 cookie 的特性假造要求,实现了 CSRF
效果:
可以实行任意在用户的权限内的操作
实现办法:
在可跨域的标签如img、iframe中布局恶意 url,或布局利用 post 方法的表单并勾引用户访问该页面,即可实现攻击
总结针对 web 程序的攻击办法,这些办法造成的后果不一,小到会话挟制,大到直接拿到做事器的管理员权限,这完备取决于 web 程序的安全设置,但从根本上来说,这些安全问题都是可以彻底避免的。
经测试,创造 User ID 的输入框中存在反射型的 XSS 漏洞,在该输入框中布局输入:test\"大众 onmouseover=prompt(100) bad=',点击 Go 提交该输入后,在返回的页面中已被嵌入了恶意代码,当鼠标移动到 User ID 上后,会弹出一个提示框
请点击此处输入图片描述
XSS 后的页面
查看网页的源代码,可以创造 User ID 这个输入框确实被我们的输入掌握了
XSS 后的页面和正常页面的源码比较
请点击此处输入图片描述
值得把稳的地方
如果在前端过滤用户输入的话,可以利用 Burp Suite 等工具绕过过滤
设置 HttpOnly 可以禁止客户真个脚本访问 cookie,但是依然可以通过抓包的办法获取到 cookie
SQL 注入
事理:
做事器没有对用户的输入做到充分的过滤,导致可实行任意 SQL 语句
效果:
如果当前用户具有对数据库的读权限,导致数据库信息透露
如果当前用户具有对数据库的读写权限,可对数据库进行任意修正
如果当前用户具有对数据库的管理员权限,可对数据库的用户及数据库进行任意操作
对付XSS的漏洞挖掘过程,实在便是一个利用Payload不断测试和调度再测试的过程,这个过程我们把它叫做Fuzzing;同样是Fuzzing,有些人挖洞比较高效,有些人却不那么随意马虎挖出漏洞,除了节制的技能之外,比如编码的绕过处理等,还包含一些技巧性的东西,节制一些技巧和规律,可以使得挖洞会更加从容。
Fuzzing(模糊测试)是挖掘漏洞最常用的手段之一,不止是XSS,该当可以说Fuzzing可以用于大部分类型的漏洞挖掘。普通可以把这种办法理解为不断考试测验的过程。黑客入门书本《网络黑白》t宝有