sql注入CTF less-1

请输入ID作为带数值的参数

我们先输入一个id=2,有显示,然后我们现在判断一下是字符值类型还是数值类型的(注:字符类型和数值类型的攻击方式不一样)

判断方法为在id=2后面加’

加入后说明这个是字符类型的SQL注入,接下来就好办了

 使用order by查看有多少字段,但是我们发现代码竟然报错了

 翻译:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行使用接近极限0,1'的正确语法

这个说明是sql语句是问题然后我们看一下我们输入的sql语句实际输入的数值

发现了在3的后面多了一个',这说明什么问题

看仔细一点原来是这个数据类型是字符类型,id后面自带一个' '符合,这个时候我们要把3后面的'注释掉,扩展一个知识,在sql中-- 和#是注释的意思,-- 在URL中的解码是--+所以我们在后面加上这个

 没有输出错误

现在我们在加1 输入4,现在提示Unknown column '4'in 'order clause'说明这个是3个字段

 接下来我们进行联合查询

注:我们要让前面报错才能运行后面的联合查询的代码,详情看php代码这里就不一样解释了

如上图显示,说明有二个回显位,此时我们可以利用这个报数据库名,查询数据库名为database()

由此可知我们的数据库名为security

接下来进行表名的查询

具体代码为:

http://localhost/sql/Less-1/?id=-2' union 
select 1,2,group_concat(table_name) 
from information_schema.tables where 
table_schema='security'--+

这样就爆出了表名:

Your Password:emails,referers,uagents,users

接下来我们就是去爆 字段名

Your Password:emails,referers,uagents,users

出现的是:

Your Password:id,username,password

这个时候我们已经知道了字段名了,我们这个时候查询所有内容

语法是select (id,usernaem,password) from users

 接下来我们进行一些优化在id,username中加''

 这样就可以很清楚的看出账号密码了!

教程到处为准!不懂的请私聊作者!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值