全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

记录一次攻防演练中的代码审计(突破)

发布时间:2022-12-22 17:25:06
发布人:syq

  第一天

  在一次授权的攻防项目中,我和我的一个好兄弟在渗透过程中发现一个目标存在mssql注入,通过注入拿到了管理员的账号和密码。

31.记录一次攻防演练中的代码审计(突破)64

  当时我和我的好兄弟高兴坏了,迫不及待的把拿到的数据进行解密(当时天真认为可以解密,马上getshell)由于是攻防演练,并且报告提交的越早分数就会越高,何况还是getshell。

1

  结果发现根本解不出,后来发现原来是加盐MD5,想着先把盐值找到或许就能有一线突破,最终找到的盐值和账号对应如下:

2

  当时我和我兄弟在这里卡了半天,甚至是去网上搜索加盐md5的破解,后面发现根本解不出来。

  第二天

  我和兄弟那一晚上一夜未眠,想着各种法子去解密,网上各种办法,各种脚本都试了一遍,发现完全不行,突然一下有个念头一下子出来了,在上一次的攻防演练中,也是mssql注入,当时可以通过堆叠注入,自己插入一条数据,于是我们开始整理思路思路如下:

  思路一

  通过堆叠注入插入一条数据,直接登录(但是要自己找到一条加盐Md5)搭建这个cms搭建起来,自己创建一个管理员账号,然后插入进去。

  思路二

  找到对应的cms或者是网站源码,代码审计,试图找到加密流程或者是其他有用信息。

  尝试思路

  通过mssql注入的报错信息可以判断出为dtcms,于是我迫不及待的去github搜罗了一番,找到了其源码,首先想到的搭建起来这个cms,由于对net环境的不熟悉,加上搭建后各种报错,(让我抑郁了很久)继续信息收集,发现源代码下面有个SQL文件,进去搜索找到一条加密的数据,并且前期信息收集到dtcms的默认密码是admin888于是开始行动全局搜索salt。

31.记录一次攻防演练中的代码审计(突破)923

3

  插入payload如下:

4

  插入的账号为test 密码是admin888

  登录账号

31.记录一次攻防演练中的代码审计(突破)1520

  登录成功发现,权限为超级管理员,然后getshell(在某篇文章看到)文件上传类型添加aspx,ashx,然后上传相应的哥斯拉马,直连即可。

31.记录一次攻防演练中的代码审计(突破)1592

  最后我和我兄弟成功将这个站点拿下但是内心感觉还是空空的,先提交报告吧。

  第三天

  我和兄弟越想越不舒服,我们思路二还没试过呢,如果我们可以解密这个加密数据,是不是以后遇到类似的站点,假如不存在堆叠注入,岂不是不能插入数据,不行,必须得试一下,于是开始代码审计。

  .net基本知识

  .ashx一般是网页文件。.cs文件一般是后台逻辑代码。

  目前已有的数据

5

  代码审计

  在DTcms.Web中找到login.aspx.cs。

  通过调用manager类中的GetModel方法来判断是否登录成功。

31.记录一次攻防演练中的代码审计(突破)1970

  ps:这里BLL.manager()中BLL是一个命名空间。我们可以通过BLL这个名字在DTcms.BLL文件夹中找到manager.cs。

31.记录一次攻防演练中的代码审计(突破)2042

  接着在manager类中的GetModel方法中,发现在登录的时候会先从数据库中获得这个用户的盐值,然后根据输入的密码与盐值调用DESEncrypt.Encrypt(password, salt)进行加密。后来知道了这里DESEncrypt是一个类,Encrypt是一个静态函数,所以可以直接调用。

31.记录一次攻防演练中的代码审计(突破)2193

  接着我们审计DESEncrypt中的Encrypt方法。在文件夹中搜索DESEncrypt,最终在DTcms.Common中找到了DESEncrypt类。加解密流程逻辑代码不需要细看,只需要知道就是传入密文和盐值调用Decrypt函数即可得到明文。

  源码如下

6

7

8

9

10

  最终得到明文

31.记录一次攻防演练中的代码审计(突破)7451

11

  总结

  通过这次攻防再一次加深了代码审计的重要性,有时候就是一个突破点,还有就是和兄弟在审计中遇到的困难,一次次被突破,那种感觉真的很爽!!

相关文章

什么是MAC地址?

什么是MAC地址?

2023-10-14
黑石服务器是什么?

黑石服务器是什么?

2023-10-14
Rx和Tx是什么?

Rx和Tx是什么?

2023-10-14
重大应急管理(MME)是什么?

重大应急管理(MME)是什么?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取