zoukankan      html  css  js  c++  java
  • 关于C/S架构系统的安全监测

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

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

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

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

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

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

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

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

    知道数据库服务器的IP

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

    2.直接刷选协议:

    直接刷选协议

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

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

    打开系统

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

    看看抓到的东西

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

    查看数据流查看数据流

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

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

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

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

    抓包重置一下

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

    我要测试的系统

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

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

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

    输入一个不存在的用户名

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

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

    同样的,追踪数据流:

    追踪数据流

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

    服务器在查询用户名

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

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

    登录成功:

    登录成功

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

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

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

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

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

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

    首先说第二个:

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

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

    举个例子:

    SQL注入,高危

    SQL注入,高危!!!

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

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

    XSS

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

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

    看所有流量包

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

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

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

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

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

    查看自己的系统使用的数据库的ID

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

    登录

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

    设置:

    设置

    设置

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

    在这里设置好:

    数据ID

    然后运行,开始抓包了。

    抓包

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

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

  • 相关阅读:
    Linux makefile 教程 很具体,且易懂
    工作流技术学习
    23种设计模式(5):原型模式
    NETSH WINSOCK RESET这条命令的含义和作用?
    OpenGL中shader使用
    【我所認知的BIOS】—>ADU.exe
    socket通信简单介绍
    Android开发之合并文件的几种方式
    Python 单词字母顺序不变且所有倒排
    VC2010 Working Directory
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/7344099.html
Copyright © 2011-2022 走看看