前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C/S客户端的安全测试流程

C/S客户端的安全测试流程

作者头像
洛米唯熊
发布2019-07-25 15:37:46
5.5K0
发布2019-07-25 15:37:46
举报
文章被收录于专栏:洛米唯熊洛米唯熊

0x00:前言

听说C/S客户端的安全测试很少出现测试流程的。洛米唯熊百度一找,谷歌一搜。果然。没有正规的测试流程。偶然在一个群里看到一个图,感觉还可以,就自己摸索的尝试对应的流程写一下找到的工具给各位大佬做一下分享。

0x01:目录分析

1、基本信息获取

链接地址:

代码语言:javascript
复制
https://zhidao.baidu.com/question/935871668215037772.html

Universal Extractor工具:自动分析文件类型并提取程序中捆绑的插件。

在想,基本信息应该要获取吧!比如注册表信息、安装时的动态情况、进程获取等

百度一下“软件安装监视器”

排名前三的工具

Total Uninstall、InstallSpy 2.0、Soft Organizer

举个栗子:

2、文件数字签名检测

百度一下“文件数字签名检测”

排名第一的是:

文数字签名检查工具(SigcheckGUI)

举个栗子:

unsigned表示未签名文件,

为漏洞或者木马可利用文件。

3、编译选项检测

编译?可否逆向源码?在等大佬给答案

4、抗逆向分析检测

逆向首先要脱壳吧!常用的查壳工具“Peid”了解下

脱完壳。OD、IDA了解一下。

分析应该是可逆程序为不安全程序,反之安全。

5、危险函数检查

大多程序应该为C或者C++写的吧。易语言才是最牛逼的

函数

严重性

解决方案

gets

最危险

使用 fgets(buf, size, stdin)。这几乎总是一个大问题!

strcpy

很危险

改为使用 strncpy。

strcat

很危险

改为使用 strncat。

sprintf

很危险

改为使用 snprintf,或者使用精度说明符。

scanf

很危险

使用精度说明符,或自己进行解析。

sscanf

很危险

使用精度说明符,或自己进行解析。

fscanf

很危险

使用精度说明符,或自己进行解析。

vfscanf

很危险

使用精度说明符,或自己进行解析。

vsprintf

很危险

改为使用 vsnprintf,或者使用精度说明符。

vscanf

很危险

使用精度说明符,或自己进行解析。

vsscanf

很危险

使用精度说明符,或自己进行解析。

streadd

很危险

确保分配的目的地参数大小是源参数大小的四倍。

strecpy

很危险

确保分配的目的地参数大小是源参数大小的四倍。

strtrns

危险

手工检查来查看目的地大小是否至少与源字符串相等。

realpath

很危险(或稍小,取决于实现)

分配缓冲区大小为 MAXPATHLEN。同样,手工检查参数以确保输入参数不超过 MAXPATHLEN。

syslog

很危险(或稍小,取决于实现)

在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。

getopt

很危险(或稍小,取决于实现)

在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。

getopt_long

很危险(或稍小,取决于实现)

在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。

getpass

很危险(或稍小,取决于实现)

在将字符串输入传递给该函数之前,将所有字符串输入截成合理的大小。

getchar

中等危险

如果在循环中使用该函数,确保检查缓冲区边界。

fgetc

中等危险

如果在循环中使用该函数,确保检查缓冲区边界。

getc

中等危险

如果在循环中使用该函数,确保检查缓冲区边界。

read

中等危险

如果在循环中使用该函数,确保检查缓冲区边界。

bcopy

低危险

确保缓冲区大小与它所说的一样大。

fgets

低危险

确保缓冲区大小与它所说的一样大。

memcpy

低危险

确保缓冲区大小与它所说的一样大。

snprintf

低危险

确保缓冲区大小与它所说的一样大。

strccpy

低危险

确保缓冲区大小与它所说的一样大。

strcadd

低危险

确保缓冲区大小与它所说的一样大。

strncpy

低危险

确保缓冲区大小与它所说的一样大。

vsnprintf

低危险

确保缓冲区大小与它所说的一样大。

百度一下“C/C++静态扫描分析工具”

排名前三的是:Flawfinder、TscanCode、SourceInsight_Scan

这个是危险函数的解决方案:

代码语言:javascript
复制
https://blog.csdn.net/leo2007608/article/details/41016517

5、API HOOK防护测试

我自己常用的工具是:火绒剑

代码语言:javascript
复制
down4.huorong.cn/hrsword.exe

还有这个:

代码语言:javascript
复制
 https://www.jpzyfx.com/22367.html

举个栗子:

挺好用的,之前用它抓过病毒程序的东西

5、进程保护测试

进程干扰性?内存?还是?

防护建议:

1、将你所有任务安全合法的DLL名称全部记录下来,并且记录合法DLL的MD5 或者对记录DLL签名校验。

2、查看内存运行是否被直接查看。(WinHex工具)

举个栗子:

看,这个是它的运行内存数据

接着在里面找敏感数据吧!比如账户密码等

7、数据储存安全检查

顾名思义就是:本地文件是否明文储存敏感数据

8、数据传输安全测试

建议可用工具:BURP、wireshark等抓包工具

9、防键盘监听测试

百度搜索“防键盘监听”第一名:KeyScrambler

还有就是一些键盘监听工具:Spyrix Free Keylogger

好的程序,键盘应该防止被监听。

10、单账户多点登陆测试

这个简单 整一个账户,在同个程序登陆,查看是否会被T下线。如果否,则不安全。

11、防进程代码注入检测

这个好防。

请看 第五 的防护建议第一条。

12、溢出风险检测

请参考

代码语言:javascript
复制
http://cdmd.cnki.com.cn/Article/CDMD-10135-1014352678.htm 

com fuzz 请参考

代码语言:javascript
复制
https://www.freebuf.com/sectool/76861.html

接口测试工具推荐:COMRaider、httpapi、Postman

13、防截屏检测

好的程序都会防止被截屏、比如银行网银系统、比如国家机密系统。 让程序不能调用“PrintScreen”,这个程序员知道怎么改。

程序员:这锅,我不背。

14、C/S抓包测试

1、抓流量推荐用:wireshark。

2、抓的数据包可以导到BURP用。

3、查看抓到的链接是否浏览器直接打开。

4、是否可以被挂代理抓流量。

5、传输数据是否加密。

0x02:总结

总之C/S客户端的安全测试来源于每次的总结,不断的积累经验。完善以上的目录结构。我觉得C/S客户端的安全测试不止以上的问题,可能还有更多。期待您的完善与建议!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洛米唯熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
手游安全测试
手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档