记菜鸟第一次:岛国网站的sql注入
2020-09-30 22:20:06 Author: forum.90sec.com(查看原文) 阅读量:729 收藏

  1. 打开了谷歌hack 数据库

image

  1. 在谷歌中漫步,看到几个?id=XXX结尾的网址,加’ 出现报错,也有好几个注入点,是打开后就可以看到mysql的报错信息。

image

其中有一个越南的公益网站,应该是停止维护了,但还是给管理员发送了提醒注入漏洞的邮件。最后选了一个岛国信息网站,开始愉快的一天。

  1. 直接丢给了sqlmap自动注入,与此同时使用

Nikto 和nmap 进行信息搜集,因为是新手,全是--help看的基础命令

Nikto -h 127.127.127.127

image

Nmap -v -A 127.0.0.1

image

用sqlmp -u “http://url” --os-shell ,却发现找到了根目录但是没法上传文件,最后确认是mysql没有写入当前目录的权限。

Sql一直在提示上传失败

[WARNING] it looks like the file has not been written (usually occurs if the DBMS process user has no write privileges in the destination path)

sqlmp -u “http://url” --sql-shell发现是可以用sql-shell。使用select into语句写文件和update语句也是失败,提示

image

image

于是通过 select @@datadir 和select @@basedir 获得了mysql安装的目录和数据目录

分别为/usr 和/var/lib/mysql

image

  1. 尝试下载apache配置文件和mysql配置文件。

尝试下载Apache 2.2.2的默认配置文件(这个全靠运气了感觉)

不断的尝试

Sqlmap -u “url” --file-read=”文件路径”

得到apache和mysql的文件内容(关键)

image

image

image

image

Apache配置文件(敏感信息泄露)

image

image

  1. sql注入获取webshell的关键在我看来就是,能找到可以写入文件的目录且有可以执行的方式。

所以在不断切换apache的目录后,终于找到了,可以用目前sql注入点,写入文件,并且访问的目录。

通过不断尝试,sqlmap 手动设置目标目录和上传文件,终于找到了有权限的目录。

上传失败的截图:

image

成功的截图:

image

  1. 中途在上传失败的时候尝试进行源码分析,发现了mysql的数据库密码,但是无法远程连接。

image

image

  1. 也尝试了对10000端口的web服务的密码爆破,使用了burpsuite.

image

密码字典只是用了sqlmap -u ‘url’ --users 获取的用户名+mysql的配置文件里面的敏感信息。但实际上,只跑了三次,就出现了拦截。

image

image

image

实际返回,被拦截了,所以这个行不通。

image

  1. 查看代码的时候发现了一个执行漏洞,也进行了尝试,但sqlmap-shell没法执行update语句,这点我也很疑惑。

image

从这个代码上来看,一定是有办法把linux的find命令截断,然后执行任意代码的。只需要构造好folder的值。

但是在sqlmap的sqlshell中没法执行upate命令,无法修改这个字段的值。这点我也很困惑,同样困惑的是,既然我有了sqlshell的root命令权限,为啥还要获取mysql的root密码,甚至还得查md5,我自己insert一个不行吗?前辈们的教程都是这样的,盲人摸象。希望能有机会获得注册码进一步学习。

9.后续提权的思路,vsftp 2.2.2,直接在metasploit中search svftp,并没有尝试,作为一个靶机训练,有webshell就可以止步,系统漏洞,这种感觉比较老的系统,也有不少吧。

image

总结:比较low的一个sql注入点,但是sqlmap无法获取准确的上传路径和执行路径,好在有sqlmap --file-read 所有文件的权限,所以根据apach 2.2.2 centos的常用配置和sql-shell获取的安装目录,猜解apache和mysql的配置文件地址,apache的配置文件里面的敏感信息还是比较多的。

问题:

  1. Sql-shell本身就是root权限,为什么还要猜解root登录的密码?即使有了密码不能外网访问有啥用呢?

  2. Sqlmap的shell为什么不支持update命令?都能访问读取任意文件了,写入文件的权限,怎么会仅限于mysql的目录和特有的几个目录?


文章来源: https://forum.90sec.com/t/topic/1316/1
如有侵权请联系:admin#unsafe.sh