SQLMAP进阶使用-MayIKissYou.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLMAP进阶使用-MayIKissYou

原原文文地地址址:/tips/5254 0x00 背背景景 首先在drops上搜索下sqlmap相关的文章: sqlmap用户手册 sqlmap用户手册[续] sqlmap实例cookbook 使用sqlmap对网站和数 库进行sql注入攻击 使用sqlmap 中tamper脚本绕过waf 介绍的比较全了,但是对于sqlmap的脚本扩展部分没有提及,例如自定义payload,自定义绕过脚本等等。 0x02 自自定定义义payload脚脚本本 2.1 需需求求 我们先写一个比较全的select语句: #!sql select * from users where user_id in (1,2,3,[4]) and first_name li e %[t]% and second_name= [’b’] group by [first_name] order by [1] [desc] limit [1] 语句中[]中的内容都是查询中可能存在的注入点。 那么问题来了: 1):这些注入点里面哪些是sqlmap在默认level下就能够识别的? 2):不能够在默认级别下识别的注入点,sqlmap在level=多少的时候能否识别? 3):sqlmap识别不了的时候怎么办? 以order by类型的注入来看,order by [1][1]这个参数在设置level=3的时候会被sqlmap检测出来(这里需要注意的在01_boolean_blind.xml文件中,如果level字段设置的是2,在测试的时候需要 设置比level高的才可以被识别,如rli e order by注入设置的level值为2,我在命令行使用sqlmap参数的时候需要设置level=3) 但是order by 1 [desc],在设置level=3的时候也无法识别,也许你会说添加suffix和prefix就可以了,确实是这样,但是现在的选手一般都会选择开web代理,然后调用sqlmap接口去检查,因此 这里对于sqlmap的要求就高了. 第一:sqlmap要能够检测出url的参数存在注入点; 第二:测试的效率要高[不能够将level设置的很高];设置level高的情况下,会有更多的请求。 现在看来自己将payload编写为sqlmap可用的payload即可。 2.2 说说明明 Sqlmap在运行之后会加载读取xml文件,并且将结果保存到co f.tests中,如下图: 这部分payload会在会在checkSqlI jectio 中使用: 接下来只要知道如何使用这部分payload以及xml中各个字段是什么意思即可。 首先详细看一下payload中字段: title字段:payload test起的名字; 譬如我们给自己的payload起的名字为: #!sql MySQL boolean-based blind - WHERE, HAVING, ORDER BY or GROUP BY clause (desc-mayi issu) style字段:sql注入的类型sql注入分了如下类型: 类型1:盲注 我们order by类型属于盲注,因此我们添加stype的值为1. 类型2:错误类型注入 类型3:内联注入 类型4:多语句查询注入 类型5:时间注入 类型6:联合查询注入 level字段:sqlmap对于每一个payload都有一个level级别,level级别越高表示检查的payload个数就越多。 譬如我们自定义个level设计的为2,因此只有在使用在命令行使用level》2的时候,才会使 用我们的payload进行检测。 risk字段:风险等级,有多大几率获取破坏数 。值有1,2,3,分别表示低中高。默认的risk为1,默认检测所有风险级别的payload。 该字段影响不大。 clause字段:payload在哪个语句里生效,差不多意思就是这个payload用在sql语句的哪个位置。可用的值: 0: Always 1: WHERE / HAVING 2: GROUP BY 3: ORDER BY 4: LIMIT 5: OFFSET 6: TOP 7: Table name 8: Column name 我们这里测试的是order by,此处clause的字段设置为3,经过测试这里的值可以混用的,关键看sql语法。 where字字段段:: where字段我理解的意思是,以什么样的方式将我们的payload添加进去。 1:表示将我们的payload直接添加在值得后面[此处指的应

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档