SQL注入
原理:前端代码未被解析代入到数据库导致数据库报错
类型:常见的数字型和字符型
显错注入:利用了应用程序在处理查询时返回的错误消息。攻击者通过构造恶意的查询,故意引发数据库的错误,并观察应用程序返回的错误消息,从中获取有关数据库结构和敏感信息的详细信息。
报错注入:区别于显错注入,正常情况下网页不会显示任何错误内容,可通过盲注进行注入。
也可以利用特殊的函数来使数据库报错,将我们要查询的内容通过报错的形式显示出来
报错注入常用函数 | 作用 |
updatexml() | 改变(查找并替换)XM文档中符合条件的节点的值 |
extractvalue() | 从目标XML中返回包含所查询值的字符串 |
布尔盲注:利用应用程序在处理查询时返回的布尔(真/假)结果。攻击者通过构造判断语句,并观察应用程序的不同响应来确定查询的真假,由此获取数据。
时间型盲注:利用了应用程序在处理查询时引用延迟的特性,攻击者通过构造延时函数,并观察应用程序的响应时间来推断查询的真假,由此获取数据。
堆叠注入:利用应用程序对多个查询语句的支持,攻击者可以在注入点上插入多个查询语句,并在单个注入操作中执行它们,这使得攻击者可以执行多个查询或修改数据库的内容。
XSS(跨站脚本攻击)
原理:在网页中嵌入客户端恶意脚本,对含有漏洞的服务器发起xss攻击,诱导受害者点击打开受到攻击的URL,打开后恶意脚本就被执行(窃取cookie)
类型:反射型:构造的payload发送到后端,再由后端返回给前端
DOM型:数据不到后端,直接由前端js进行处理
存储型:构造的payload,存储到数据库中,并且在网站页面上自动执行代码。
CSRF(跨站请求伪造)
原理:利用网站对用户网页浏览器的信任,攻击者可构造自己的URL地址欺骗目标用户进行点击
盗用你的身份,以你的名义发送恶意请求
CSRF与XSS的区别
xss:通过盗取网站内已有的用户身份,在执行相关操作
csrf:通过伪装、伪造用户身份,通过服务器的认证,发送恶意请求
SSRF (服务器端请求伪造)
原理:攻击者构造形成由服务端发起请求的一个安全漏洞,由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制
命令执行
原理:服务端没有对客户端输入的命令进行过滤,导致用户通过任意拼接系统命令,使服务端成功执行。
文件上传
程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件
文件包含
输入一段用户能够控制的脚本或者代码,并让服务端执行。
只有一个登录页面如何进行渗透测试
账号枚举、弱口令登录、暴力破解、目录扫描、明文传输、页面的框架,js扫描
当拿到一个网站的域名或者IP的渗透流程(一个站点)
信息收集:得到域名查IP,收集子域名,扫描端口
漏洞测试