原文链接:注入岛国网站,技术菜鸟第一次....
1.打开了谷歌hack 数据库 2.在谷歌中漫步,看到几个?id=XXX结尾的网址,加’ 出现报错,也有好几个注入点,是打开后就可以看到mysql的报错信息。 其中有一个越南的公益网站,应该是停止维护了,但还是给管理员发送了提醒注入漏洞的邮件。最后选了一个岛国信息网站,开始愉快的一天。 3.直接丢给了sqlmap自动注入,与此同时使用 Nikto 和nmap 进行信息搜集,因为是新手,全是--help看的基础命令 Nikto -h 127.127.127.127
Nmap -v -A 127.0.0.1
用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语句 也是失败,提示 于是通过 select @@datadir 和select @@basedir 获得了mysql安装的目录和数据目录 分别为/usr 和/var/lib/mysql 4.尝试下载apache配置文件和mysql配置文件。 尝试下载Apache 2.2.2的默认配置文件(这个全靠运气了感觉) 不断的尝试 Sqlmap -u “url” --file-read=”文件路径” 得到apache和mysql的文件内容(关键)
Apache配置文件(敏感信息泄露)
5.sql注入获取webshell的关键在我看来就是,能找到可以写入文件的目录且有可以执行的方式。 所以在不断切换apache的目录后,终于找到了,可以用目前sql注入点,写入文件,并且访问的目录。 通过不断尝试,sqlmap 手动设置目标目录和上传文件,终于找到了有权限的目录。 上传失败的截图: 成功的截图: 6.中途在上传失败的时候尝试进行源码分析,发现了mysql的数据库密码,但是无法远程连接。
7.也尝试了对10000端口的web服务的密码爆破,使用了burpsuite. 密码字典只是用了sqlmap -u ‘url’ --users 获取的用户名+mysql的配置文件里面的敏感信息。 但实际上,只跑了三次,就出现了拦截。
实际返回,被拦截了,所以这个行不通。 8.查看代码的时候发现了一个执行漏洞,也进行了尝试,但sqlmap-shell没法执行update语句,这点我也很疑惑。 从这个代码上来看,一定是有办法把linux的find命令截断,然后执行任意代码的。只需要构造好folder的值。 但是在sqlmap的sqlshell中没法执行upate命令,无法修改这个字段的值。 这点我也很困惑,同样困惑的是,既然我有了sqlshell的root命令权限,为啥还要获取mysql的root密码,甚至还得查md5,我自己insert一个不行吗? 前辈们的教程都是这样的,盲人摸象。希望能有机会获得注册码进一步学习。 9.后续提权的思路 vsftp 2.2.2,直接在metasploit中search svftp,并没有尝试,作为一个靶机训练,有webshell就可以止步,系统漏洞,这种感觉比较老的系统,也有不少吧。 总结: 比较low的一个sql注入点,但是sqlmap无法获取准确的上传路径和执行路径,好在有sqlmap --file-read 所有文件的权限, 所以根据apach 2.2.2 centos的常用配置和sql-shell获取的安装目录,猜解apache和mysql的配置文件地址,apache的配置文件里面的敏感信息还是比较多的。
|