由于工作需求,需要对一大批C/S架构的系统进行测试,所以这几天一直在摸索怎么个套路法,踩过的坑就不发了,直接奔我个人的套路:

C/S架构的系统,说最直白一点就是一堆.exe的系统,他们大部分没有web端,这就给我们这种web狗带来了难题了,怎么测试呢,网上没有详细资料,我这里也是个人的摸索经验。

1.走http协议的,这里就不说了,因为都走的是http协议了,跟有没有web端已经无所谓了,直接挂上全局代理,用burp抓包进行分析吧。和测试web的一个套路

2.不走http协议的,如我下面举的例子,走的是MSSQL的TDS协议。下面直接以例子来说明:

为了更大众一点,我每步都说详细点。。毕竟我差不多每步都走过坑。。。

进入系统之前,我们先打开wireshark进行配置:

这里有两种刷选流量的方法:

1.知道数据库服务器的IP:

选好网卡和添加好数据库服务器的IP,点击start,OK。

2.直接刷选协议:

写上需要刷选的协议tds.window,然后apply提交,OK

以上两种选择一种即可,然后我们打开系统:

因为之前注册表已经保存了数据库的账号和密码了,我这里直接打开,他就默认去连接了,我们来看看抓到的东西:

查看数据流:(红色的是服务器,蓝色的是客户端也就是我这台本机了)

这就是MSSQL的登录过程,箭头所指出就是当前登录的数据库账号,然后密码呢,就是最后一大堆乱码了,想解密??不存在的,反正我没有找到MSSQL2008的密码对应表。(哪个大佬有的话可否私聊发我一份呀。。)

前面那一堆只是让你摸清一下怎么个流程,大致说一下就是从MSSQL2003之后,登录过程都是经过加密了的,除了登录过程之外,其他以后的所有操作都是明文!!!!没错,都是SQL语句在进行的交互。

下面进行我们web狗可以干的一些事:

开始前,我们先把抓包重置一下(这里注意一下,以后的你在进行每一个步骤之前都应该重置一下,这样就只会抓到你当前操作的包了)

然后来到我要测试的系统:

随便输入一个密码进行抓包:

输入一个不存在的用户名:

提示信息不同,OK,这里就有用户名枚举漏洞了,哈哈,对吧,中危漏洞,写上写上。

然后我们在来看看抓到的包:

同样的,追踪数据流:

注意我箭头方向,服务器在查询用户名,好的,我们继续往下看:

所有的服务器保存的账号和密码居然全部返回了过来,猜测是进行密码校验的时候数据库服务器会把所有账号过一遍,不过不用管,记下来,信息泄露,高危!!!!

然后咱们随便拿一个账号进行登录:

登录成功:

好的,进入了系统之后呢,(PS:弄不到账号的号可以直接找厂商要一个,反正要进入系统)

同样的套路,我们先把wireshark重置。

到了这里,分为两步走了:

1.白盒测试,或者说你有数据库账号的:

2.黑盒测试,你没有数据库账号的:

我说的是数据库账号,不是上面登录的用户账号。

首先说第二个:

没有数据库账号的话,直接给你说两个字:乱点!!!

没错,就是乱点,针对的地方有所有有搜索框的地方,所有的新增的东西的地方,这些都有可能存在SQL注入和XSS。

举个例子:

SQL注入,高危!!!

这里的搜索处就存在SQL注入了,

然后这里有个新增用户的地方,咱们试试XSS:

设置完之后,它肯定是不会弹窗的,我们要的不是为了弹窗,这时候我们退出登录,忘记上面服务器会返回什么信息了吗?没错看下图:

我们再次随便输入一个密码,然后看所有流量包:

看到了吧,成功插入数据库了,好的,存贮型XSS,高危,记下记下!!!

测试payload,直接闭合前面,然后后面进行账号添加’ALTER SERVER ROLE sysadmin ADD MEMBER test;

(这里不能说XSS了,应该是命令执行了,所有SQL语句理论上来说都是可以执行的。)

不过这个系统是做了防护的,大部分的地方都不会有回显,这时候怎么办呢,我们来到方法一,我们不是有数据库的账号密码吗,来,登录MSSQL2008:

登录成功之后,查看自己的系统使用的数据库的ID是多少

这里是13.好的,然后我们来登录这个:

这个是用来记录SQL语句的,就是你在客户端的所有操作,他这里都有显示。

设置:

然后在选择列栓选器:上面我们不是查看了自己的数据ID是多少吗

在这里设置好:

然后运行,开始抓包了。

搞定,后面的步骤就跟方法二一样啦,方法二所有没有回显的,这里全部都会有。。嘿嘿嘿,看一条,查一条,还不是美滋滋~~~

好了,由于技术很菜。。本人的总结就只有这么多,哪个大佬还有更好的方法的欢迎指教。。我好加入我的笔记数据库~~~

关于C/S架构系统的安全监测的更多相关文章

  1. Windows系统SNMP数据监测与OID

    Windows系统SNMP数据监测与OID http://blog.csdn.net/liuhuango123/article/details/52253953

  2. zuul 路由网关 微服务架构系统中

    在微服务架构中,基本包含以下常见的组件.服务注册与发现.服务消费.负载均衡.断路器.只能路由.配置管理等.一个简单的微服务架构系统如下 一.Zuul简介 Zuul的主要功能是路由转发和过滤器.路由功能 ...

  3. Netty学习-IO体系架构系统回顾 & 装饰模式Decorator的具体使用

    Netty学习-IO体系架构系统回顾 IO和NIO的学习 NIO - 1.4 开始出的 在网络应用框架中,NIO得到了大量的使用,特别是netty里面 前提:对IO及其了解 对IO的总结和回顾 理解J ...

  4. netty源码分析(十八)Netty底层架构系统总结与应用实践

    一个EventLoopGroup当中会包含一个或多个EventLoop. 一个EventLoop在它的整个生命周期当中都只会与唯一一个Thread进行绑定. 所有由EventLoop所处理的各种I/O ...

  5. 让x86的android模拟器能模拟arm架构系统

    网上介绍共计三种模拟器比较常用,分别是bluestacks.andy和Genymotion,前者支持ARM架构,中者支持远程控制,后者启动速度快,各有优缺点. 如果要用genymotion模拟arm的 ...

  6. 简单的web三层架构系统【第三版】

    今天是第三版,和前几天一样今天还是要对代码进行优化,三层架构是一种思想,具体能不能使得整个系统安全和高性能,还是要看代码编写的是否合理,逻辑性是否严谨. 昨天偶然间看到别人写的三层架构中,竟然没有在方 ...

  7. 简单的web三层架构系统【第二版】

    昨天写了 web三层架构的第一版,准确的说是三层架构的前期,顶多算是个二层架构,要慢慢完善. 第一版里,程序虽说能运行起来,但是有一个缺陷,就是里面的SQL语句,是使用的拼接字符进行执行.这样安全系数 ...

  8. C/S架构系统自动化测试入门

    所谓C/S架构即Client/Server(客户端/服务器架构).虽然近年来C/S架构产品越来越少,大有被B/S(Browser/Server 浏览器/服务器)架构超越的趋势,但C/S还是有B/S不可 ...

  9. Monitorix:一款面向Linux的轻型系统和网络监测工具

    Monitorix是一款功能非常强大的免费开源轻型工具,目的在于监测Linux中的系统和网络资源.它可以定期收集系统和网络数据,并使用自己的Web界面,通过图形显示相关信息.Monitorix让用户可 ...

随机推荐

  1. 一些常用的meta标签及其作用

    声明文档使用的字符编码  <meta charset='utf-8'>优先使用 IE 最新版本和 Chrome  <meta http-equiv="X-UA-Compat ...

  2. servlet 常用指令

    一.设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); 二.设置请求的字符编码 request.setChar ...

  3. zend studio汉化离线语言包安装方法

  4. 第3节 mapreduce高级:12、mapreduce相关的参数调整

    5.1 多job串联 一个稍复杂点的处理逻辑往往需要多个mapreduce程序串联处理,多job的串联可以借助mapreduce框架的JobControl实现 示例代码: ControlledJob ...

  5. JAVA基础——IO流字符流

    字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为上一篇文章写了,一个Unicod ...

  6. [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)2

    最近有个任务:利用 RNN 进行句子补全,即给定一个不完整的句子,预测其后续的字词.本文使用了 Seq2Seq 模型,输入为 5 个中文字词,输出为 1 个中文字词.目录 关于RNN 语料预处理 搭建 ...

  7. WC2007 石头剪刀布 数学+最小费用最大流

    题面: 有N个人参加一场比赛,赛程规定任意两个人之间都要进行一场比赛:这样总共有N*(N-1)/2场比赛.比赛已经进行了一部分,我们想知道在极端情况下,比赛结束后最多会发生多少剪刀石头布情况.即给出已 ...

  8. sql分组和连接

    SELECT mr.member_id, mr.username, GROUP_CONCAT(DISTINCT jb.company,jb.start_time,jb.end_time)company ...

  9. 正则表达式 整理(\w \s \d 点 贪婪匹配 非贪婪匹配 * + ? {} | [] ^ $ \b 单词边界 分组、re.findall()、re.split()、re.search()、re.match()、re.compile()、re.sub())

    re.findall  匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表 一. 匹配单个字符 import re # \w 匹配所有字母.数字.下划线 re.find ...

  10. python——进制间的转换

    int(string_num, n)  string_num表示某种进制的字符串,n表示string_num是什么进制数 2.8.16 进制转为10进制:使用int()或者eval() 10 进制转为 ...