生命在于学习——信息收集的一些知识(二)

在这里插入图片描述

一、域名信息

1. whois查询

Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期、DNS等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间

Kali下的whois查询

whois domain

站长之家

http://whois.chinaz.com/

爱站

https://whois.aizhan.com/

ip138

https://site.ip138.com/

新网

http://whois.xinnet.com/

2. 收集子域名信息

子域名也就是二级域名,是指顶级域名下的域名

2.1 在线平台

https://searchdns.netcraft.com/
http://tool.chinaz.com/subdomain/
https://phpinfo.me/domain/

2.2 工具

OneForAll
Layer子域名挖掘机  
JSFinder
ksubdomain
subfinder

OneForAll

OneForAll是一款功能强大的子域收集工具,拥有多个模块和接口扫描,收集子域信息很全,包括子域、子域IP、子域常用端口、子域Title、子域Banner、子域状态等

项目地址:https://github.com/shmilylty/OneForAll

子域名收集:python3 oneforall.py --target=target.com run

安装依赖的库
pip3 install -r requirements.txt
常用语法:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./domains.txt run
python3 oneforall.py --target example.com --fmt csv run

JSFinder 通过爬取js链接,发现url和子域名

项目地址: https://github.com/Threezh1/JSFinder
简单爬取: python3 JSFinder.py -u http://www.mi.com
深度爬取并保存: python3 JSFinder.py -u http://www.mi.com -d -ou mi_url.txt -os mi_subdomain.txt

ksubdomain
subfinder

https://github.com/knownsec/ksubdomain
https://github.com/projectdiscovery/subfinder

2.3 搜索引擎

google语法

site:baidu.com

url-collector
url-collector -e google -p "http://127.0.0.1:7890" -k "site:\"jd.com\"" -f domain -o res.txt

FOFA查询

domain="baidu.com"

fofaviewer

2.4 证书日志查询

一个 SSL/TLS 证书通常包含域名、子域名和邮件地址

在线

https://crt.sh/
https://myssl.com/

工具

Findomain不使用子域名寻找的常规方法,而是使用证书透明度日志来查找子域,并且该方法使其工具更加快速和可靠。该工具使用多个公共API来执行搜索

项目地址:https://github.com/Edu4rdSHL/findomain
子域名收集:findomain-windows -t target.com
使用所有API搜索子域并将数据导出到CSV文件:findomain-windows -t mi.com -u mi.com.txt

2.5 DNS历史解析

https://www.dnsdb.io/zh-cn/

https://rapiddns.io/
https://securitytrails.com/

二、收集真实ip

1. CDN介绍

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

常见的CDN

阿里云  腾讯云  百度云  网宿科技(ChinanNet Center)  蓝汛  金山云  UCloud  网易云  世纪互联  七牛云  京东云
Akamai(阿卡迈)  Limelight Networks(简称LLNW)   AWS Cloud(亚马逊)  Google(谷歌)  Comcast(康卡斯特)

cdn地址

[
    {
        "name": "百度云加速CDN",
        "cname_domain": [
            "jomodns.com",
            "bdydns.com",
            "yunjiasu-cdn.net"
        ],
        "ip_cidr": [
            "101.227.206.0/24",
            "101.227.207.0/24",
            "101.69.175.0/24",
            "111.132.134.0/24",
            "111.174.61.0/24",
            "111.174.63.0/24",
            "111.32.134.0/24",
            "111.32.135.0/24",
            "111.32.136.0/24",
            "111.63.67.0/24",
            "111.63.68.0/24",
            "112.25.89.0/24",
            "112.25.90.0/24",
            "112.25.91.0/24",
            "112.29.157.0/24",
            "112.29.158.0/24",
            "112.29.159.0/24",
            "113.207.100.0/24",
            "113.207.101.0/24",
            "113.207.102.0/24",
            "115.231.186.0/24",
            "115.231.187.0/24",
            "116.31.126.0/24",
            "116.31.127.0/24",
            "117.147.214.0/24",
            "117.147.215.0/24",
            "117.27.149.0/24",
            "117.34.13.0/24",
            "117.34.14.0/24",
            "117.34.28.0/24",
            "117.34.60.0/24",
            "117.34.61.0/24",
            "117.34.62.0/24",
            "119.147.134.0/24",
            "119.167.246.0/24",
            "119.188.132.0/24",
            "119.188.14.0/24",
            "119.188.9.0/24",
            "119.188.97.0/24",
            "119.84.1.0/24",
            "119.84.92.0/24",
            "119.84.93.0/24",
            "122.190.1.0/24",
            "122.190.2.0/24",
            "122.190.3.0/24",
            "122.246.5.0/24",
            "124.95.168.128/25",
            "124.95.188.0/24",
            "124.95.191.0/24",
            "125.39.174.0/24",
            "125.39.238.0/24",
            "125.39.239.0/24",
            "14.17.71.0/24",
            "150.138.149.0/24",
            "150.138.150.0/24",
            "150.138.151.0/24",
            "157.255.24.0/24",
            "157.255.25.0/24",
            "157.255.26.0/24",
            "180.163.113.0/24",
            "180.163.153.0/24",
            "180.163.154.0/24",
            "180.163.188.0/24",
            "180.163.189.0/24",
            "183.232.51.0/24",
            "183.232.53.0/24",
            "183.60.235.0/24",
            "183.61.177.0/24",
            "183.61.190.0/24",
            "183.61.236.0/24",
            "219.159.84.0/24",
            "220.170.184.0/24",
            "220.170.185.0/24",
            "220.170.186.0/24",
            "220.195.21.0/25",
            "220.195.22.0/24",
            "221.178.56.0/24",
            "221.178.57.0/24",
            "221.178.58.0/26",
            "222.216.190.0/24",
            "42.236.7.128/26",
            "42.236.7.64/27",
            "42.236.93.0/24",
            "42.236.94.0/24",
            "42.81.6.0/24",
            "42.81.8.0/24",
            "58.211.137.0/24",
            "58.211.2.0/24",
            "59.51.81.128/25",
            "60.217.232.0/24",
            "61.155.149.0/24",
            "61.155.165.0/24",
            "61.156.149.0/24",
            "61.182.136.0/24",
            "61.182.137.0/24",
            "61.241.118.0/24"
        ]
    },
    {
        "name": "阿里云CDN",
        "cname_domain": [
            "kunlunpi.com",
            "alikunlun.com",
            "kunlunea.com",
            "kunlunca.com",
            "yundunwaf3.com",
            "yundunwaf4.com",
            "yundunwaf5.com",
            "yundunwaf1.com",
            "yundunwaf2.com",
            "cdngslb.com",
            "kunluncan.com"
        ]
    },
    {
        "name": "腾讯云CDN",
        "cname_domain": [
            "cdn.dnsv1.com",
            "qcloudcjgj.com",
            "qcloudwzgj.com",
            "qcloudzygj.com",
            "qcloudwaf.com"
        ],
        "ip_cidr": [
            "112.29.152.0/24",
            "112.90.51.0/24",
            "113.207.39.0/24",
            "115.231.37.0/24",
            "117.169.77.0/24",
            "117.34.36.0/24",
            "119.147.227.0/24",
            "120.41.44.0/24",
            "125.39.6.0/24",
            "180.163.68.0/24",
            "182.247.229.0/24",
            "218.60.33.0/24",
            "219.146.241.0/24",
            "220.170.91.0/24",
            "221.204.182.0/24",
            "222.161.220.0/24",
            "223.87.3.0/24",
            "42.236.2.0/24",
            "58.216.25.0/24",
            "60.174.156.0/24",
            "61.184.213.0/24",
            "61.240.150.0/24"
        ]
    },
    {
        "name": "网宿CDN",
        "cname_domain": [
            "wsdvs.com",
            "lxdns.com",
            "wswebcdn.com",
            "wswebpic.com"
        ]
    },
    {
        "name": "加速乐CDN",
        "cname_domain": [
            "cname.365cyd.cn",
            "cdn.jiashule.com"
        ],
        "ip_cidr": [
            "113.107.238.0/24",
            "106.42.25.0/24",
            "183.222.96.0/24",
            "117.21.219.0/24",
            "116.55.250.0/24",
            "111.202.98.0/24",
            "111.13.147.0/24",
            "122.228.238.0/24",
            "58.58.81.0/24",
            "1.31.128.0/24",
            "123.155.158.0/24",
            "106.119.182.0/24",
            "113.207.76.0/24",
            "117.23.61.0/24",
            "118.212.233.0/24",
            "111.47.226.0/24",
            "219.153.73.0/24",
            "113.200.91.0/24",
            "203.90.247.0/24",
            "183.110.242.0/24",
            "185.254.242.0/24",
            "116.211.155.0/24",
            "116.140.35.0/24",
            "103.40.7.0/24",
            "1.255.41.0/24",
            "112.90.216.0/24",
            "1.255.100.0/24"
        ]
    },
    {
        "name": "亚马逊云CDN",
        "cname_domain": [
            "elb.amazonaws.com"
        ]
    },
    {
        "name": "AkamaiCDN",
        "cname_domain": [
            "edgesuite.net",
            "akadns.net",
            "edgekey.net",
            "akamai.net"
        ],
        "ip_cidr":[

        ]
    },
    {
        "name": "帝联CDN",
        "cname_domain": [
            "fastcdn.com"
        ]
    },
    {
        "name": "广东网堤CDN",
        "cname_domain": [
            "2cname.com"
        ]
    },
    {
        "name": "美橙CDN",
        "cname_domain": [
            "cndns5.com",
            "51hostonline.cn",
            "websitecname.cn"
        ]
    },
    {
        "name": "又拍云CDN",
        "cname_domain": [
            "aicdn.com"
        ]
    },
    {
        "name": "CloudflareCDN",
        "cname_domain": [
            "cdn.cloudflare.net"
        ],
        "ip_cidr": [
            "103.21.244.0/22",
            "103.22.200.0/22",
            "103.31.4.0/22",
            "104.16.0.0/13",
            "104.24.0.0/14",
            "108.162.192.0/18",
            "131.0.72.0/22",
            "141.101.64.0/18",
            "162.158.0.0/15",
            "172.64.0.0/13",
            "173.245.48.0/20",
            "188.114.96.0/20",
            "190.93.240.0/20",
            "197.234.240.0/22",
            "198.41.128.0/17"
        ]
    },
    {
        "name": "白山云科技CDN",
        "cname_domain": [
            "bsgslb.cn",
            "qingcdn.com",
            "trpcdn.net"
        ]
    },
    {
        "name": "云盾CDN",
        "cname_domain": [
            "yunduncdn.com"
        ],
        "ip_cidr": [
            "27.221.64.0/24",
            "27.221.68.0/24",
            "42.236.6.128/27",
            "49.232.85.76/32",
            "58.222.57.0/28",
            "59.56.19.0/24",
            "59.56.78.0/24",
            "59.56.79.0/24",
            "60.163.162.32/27",
            "101.69.181.0/28",
            "103.95.220.0/25",
            "103.95.221.0/24",
            "103.136.251.112/28",
            "103.136.251.0/28",
            "103.219.29.64/26",
            "111.2.127.0/28",
            "111.61.59.160/27",
            "115.231.230.0/24",
            "116.136.249.0/24",
            "116.177.238.0/24",
            "117.34.43.0/24",
            "118.121.192.0/24",
            "120.53.244.232/32",
            "120.220.20.0/24",
            "122.9.54.0/24",
            "122.226.191.192/26",
            "125.44.163.0/24",
            "129.28.193.74/32",
            "153.35.236.0/28",
            "171.111.155.0/24",
            "175.6.227.128/26",
            "183.47.233.64/26",
            "183.131.145.0/28",
            "183.131.200.0/24",
            "183.134.17.0/27",
            "183.232.187.0/24",
            "223.111.172.128/28",
            "45.159.59.0/24",
            "103.100.71.0/24",
            "103.112.3.0/24",
            "117.18.111.128/25",
            "128.1.170.0/24",
            "129.227.63.0/24",
            "156.241.6.0/24",
            "164.88.96.0/24",
            "164.88.98.0/24",
            "202.181.144.128/25",
            "206.119.114.192/26",
            "206.119.110.192/26",
            "206.119.109.192/26",
            "206.119.108.192/26",
            "216.177.129.0/24"
        ]
    },
    {
        "name": "360云加速CDN",
        "cname_domain": [
            "qss-lb.com",
            "qh-cdn.com"
        ]
    },
    {
        "name": "网神CDN",
        "cname_domain": [
            "360wzws.com",
            "qaxwzws.com",
            "qaxcloudwaf.com"
        ]
    }
]

2. 判断是否存在cdn

直接ping

ping www.jd.com

全球ping
https://ranking.fenban.net/Ping/cn/

在线多地ping检测

若不同地区的ip都是不同的则存在cdn
http://ping.chinaz.com       
https://tools.ipip.net/newping.php

3. 绕过cdn获取真实ip

如果目标站点开启了泛域名解析,可以通过ping一个不存在的二级域名

国际ping

https://tools.ipip.net/newping.php

DNS历史解析

http://www.ab173.com/dns/dns_world.php

语法: nslookup www.zhihu.com 8.8.4.4

fofa语句

title="信锐技术社区"

通过邮件服务接受邮件中的ip获取企业真实ip

证书序列号16进制转化为10进制,fofa语句查询

https://tool.lu/hexconvert/
语句 : cert="14516903431790578896883864801849922917"

cert="mi.com"

图标hash

https://github.com/becivells/iconhash/releases/latest

三、端口和指纹识别

1. 端口扫描

nmap
apt install masscan

端口:21 服务:FTP/TFTP/VSFTPD 总结:爆破/嗅探/溢出/后门
端口:22 服务:ssh远程连接      总结:爆破/openssh漏洞
端口:23 服务:Telnet远程连接   总结:爆破/嗅探/弱口令
端口:25 服务:SMTP邮件服务     总结:邮件伪造
端口:53 服务:DNS域名解析系统   总结:域传送/劫持/缓存投毒/欺骗
端口:67/68 服务:dhcp服务      总结:劫持/欺骗
端口:110 服务:pop3              总结:爆破/嗅探
端口:139 服务:Samba服务         总结:爆破/未授权访问/远程命令执行
端口:143 服务:Imap协议         总结:爆破161SNMP协议爆破/搜集目标内网信息
端口:389 服务:Ldap目录访问协议 总结:注入/未授权访问/弱口令
端口:445 服务:smb              总结:ms17-010/端口溢出
端口:512/513/514 服务:Linux Rexec服务 总结:爆破/Rlogin登陆
端口:873 服务:Rsync服务                 总结:文件上传/未授权访问
端口:1080 服务:socket                  总结:爆破
端口:1352 服务:Lotus domino邮件服务   总结:爆破/信息泄漏
端口:1433 服务:mssql                  总结:爆破/注入/SA弱口令
端口:1521 服务:oracle       总结:爆破/注入/TNS爆破/反弹shell2049Nfs服务配置不当
端口:2181 服务:zookeeper服务            总结:未授权访问
端口:2375 服务:docker remote api    总结:未授权访问
端口:3306 服务:mysql                 总结:爆破/注入
端口:3389 服务:Rdp远程桌面链接        总结:爆破/shift后门
端口:4848 服务:GlassFish控制台       总结:爆破/认证绕过
端口:5000 服务:sybase/DB2数据库      总结:爆破/注入/提权
端口:5432 服务:postgresql             总结:爆破/注入/缓冲区溢出
端口:5632 服务:pcanywhere服务        总结:抓密码/代码执行
端口:5900 服务:vnc                     总结:爆破/认证绕过
端口:6379 服务:Redis数据库           总结:未授权访问/爆破
端口:7001/7002 服务:weblogic         总结:java反序列化/控制台弱口令
端口:80/443 服务:http/https         总结:web应用漏洞/心脏滴血
端口:8069 服务:zabbix服务            总结:远程命令执行/注入
端口:8161 服务:activemq             总结:弱口令/写文件
端口:8080/8089 服务:Jboss/Tomcat/Resin 总结:爆破/PUT文件上传/反序列化
端口:8083/8086 服务:influxDB         总结:未授权访问
端口:9000 服务:fastcgi                 总结:远程命令执行
端口:9090 服务:Websphere             总结:控制台爆破/java反序列化/弱口令
端口:9200/9300 服务:elasticsearch   总结:远程代码执行
端口:11211 服务:memcached             总结:未授权访问
端口:27017/27018 服务:mongodb         总结:未授权访问/爆破

nmap ( 最稳的 )

nmap 192.168.6.1
nmap 192.168.6.1 192.168.6.2
nmap -iL text.txt
nmap 192.168.6.1 -p 0-65535

Masscan

项目地址:https://github.com/robertdavidgraham/masscan

Masscan主要是真对全网进行端口扫描 ( kali )

make
masscan 192.168.43.176 -p80,443,22
masscan 192.168.43.176 -p0-65535
masscan 192.168.43.0/24 -p0-65535 --rate 10000 ( 指定每秒发包的数量 ,不要过大, 默认是100 )

Rustscan ( 下一代端口扫描工具 kali )

项目地址 : https://github.com/RustScan/RustScan#-full-installation-guide

kali安装的下载地址 https://github.com/RustScan/RustScan/releases

dpkg -i /root/下载/tools/rustscan_2.0.1_amd64.deb 
rustscan -a 127.0.0.1  (默认扫三千个)
rustscan -a 127.0.0.1 --range 1-10000
rustscan -a ip --range 1-65535

railgun

项目地址 : https://github.com/lz520520/railgun

pass: 三个空格

2. 指纹识别

在线

http://whatweb.bugscaner.com/look/     bugscan
http://finger.tidesec.net/                          潮汐指纹
https://fp.shuziguanxing.com/#/            finger-p
https://scan.top15.cn/web/                    TScan
https://www.godeye.vip/index/             黄金之眼
https://securitytrails.com/                      在线收集子域名

工具

CMSeeK ( 2020-07-25 更新)

项目地址 : https://github.com/Tuhinshubhra/CMSeeK

 python3 cmseek.py -u example.com                           # Scan example.com
 python3 cmseek.py -l /home/user/target.txt                 # Scan the sites specified in target.txt (comma separated)
 python3 cmseek.py -u example.com --user-agent Mozilla 5.0  # Scan example.com using custom user-Agent Mozilla is 5.0 used here
 python3 cmseek.py -u example.com --random-agent            # Scan example.com using a random user-Agent
 python3 cmseek.py -v -u example.com                        # enabling verbose output while scanning example.com

御剑web指纹识别

插件

Wappalyzer

四、C段和旁站

旁站:同ip网站和目标服务器在同一台服务器上面

C端:和目标网站在一个C段的其他服务器上

1.C段

在线

https://chapangzhan.com/

fofa语句

ip="123.56.158.0/24"

goby

2.旁站

在线

http://stool.chinaz.com/same

0x05. 敏感信息

五、 waf的识别

工具

wafw00f
项目地址:https://github.com/EnableSecurity/wafw00f

六、 源码泄露

常见的源码泄露

/.bzr/
/CVS/Entries
/CVS/Root
/.DS_Store     MacOS自动生成
/.hg/
/.svn/ (/.svn/entries)
/.git/
/WEB-INF/src/
/WEB-INF/lib/
/WEB-INF/classes/
/WEB-INF/database.properties
/WEB-INF/web.xml

Robots.txt

利用工具

.git源码泄露:https://github.com/lijiejie/GitHack
.DS_Store泄露:https://github.com/lijiejie/ds_store_exp
.bzr、CVS、.svn、.hg源码泄露:https://github.com/kost/dvcs-ripper


pip3 install dumpall
dumpall -u https://geosas.fr/.git/

七、 备份文件泄露

常见备份文件名和后缀

backup   db   data   web  wwwroot   database  www  code  test  admin  user  sql
.bak   .html   _index.html   .swp   .rar  .txt  .zip  .7z  .sql   .tar.gz  .tgz  .tar

工具

ihoneyBakFileScan
项目地址:  https://github.com/sry309/ihoneyBakFileScan

八、 目录&后台扫描

工具

7kbscan 破壳 御剑后台扫描

Fuzz-dirbuster OWASP kali自带
Fuzz-wfuzz    https://github.com/xmendez/wfuzz  (python)

dirsearch

项目地址:

git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
pip3 install -r requirements.txt

python3 dirsearch.py -u https://target
python3 dirsearch.py -e php,html,js -u https://target

九、 网盘信息

可以利用云网盘搜索工具搜集敏感文件,一般直接输入厂商名字进行搜索

https://www.lingfengyun.com/       凌风云搜索
https://www.xiaobaipan.com/         小白盘搜索
https://www.dalipan.com/               大力盘搜索
https://www.xiaoso.net/                  小不点搜索(微盘)
https://pansoso.com/                      盘搜搜

十、 google黑客语法

管理后台地址

site:target.com intext:管理 | 后台 | 后台管理 | 登陆 | 登录 | 用户名 | 密码 | 系统 | 账号 | login | system
site:target.com inurl:login | inurl:admin | inurl:manage | inurl:manager | inurl:admin_login | inurl:system | inurl:backend
site:target.com intitle:管理 | 后台 | 后台管理 | 登陆 | 登录

配置文件泄露

site:target.com ext:.xml | .conf | .cnf | .reg | .inf | .rdp | .cfg | .txt | .ora | .ini

数据库文件泄露

site:target.com ext:.sql | .dbf | .mdb | .db

日志文件泄露

site:target.com ext:.log

备份和历史文件泄露

site:target.com ext:.bkf | .bkp | .old | .backup | .bak | .swp | .rar | .txt | .zip | .7z | .sql | .tar.gz | .tgz | .tar

公开文件泄露

site:target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv

邮箱信息

site:target.com intext:@target.com
site:target.com 邮件
site:target.com email

https://www.email-format.com/

社工信息

site:target.com intitle:账号 | 密码 | 工号 | 学号 | 身份证

exploit-db 全部 google 黑客语法

见工具

十一、 历史漏洞收集

1. 国内

● 国家信息安全漏洞库
● 国家信息安全漏洞共享平台
● SeeBug
● 信息安全漏洞门户 VULHUB
● 数字观星
● NSFOCUS绿盟科技
● BugScan--漏洞插件社区
● 漏洞列表 | 教育行业漏洞报告平台(Beta)
● 工控系统行业漏洞库平台
● exp库-打造中文最大exploit库
● 乌云漏洞库

2. 国外

● Exploit-db
● Sploitus | Exploit & Hacktool Search Engine
● packetstorm
● SecurityFocus
● cxsecurity
● rapid7 Vulnerability & Exploit Database
● Most recent entries - CVE-Search
● CVE security vulnerability database. Security vulnerabilities, exploits
● CVE mitre - Search CVE List
● 美国官方工控数据库 ICS-CERT Landing | CISA
● 路由器漏洞搜索 Routerpwn - One click exploits, generators, tools, news, vulnerabilities, poc

十二、 社会工程

1. 用户注册信息

● REG007
● 检查160个社交网络上的注册情况 Check Usernames - Social Media Username Availability
● 检查用户名注册情况在500个主流网站上 KnowEm用户名搜索:社交媒体,域名和商标
● 检查用户名注册情况,同时检查注册过哪些域名 Namechk | Username, Domain, and Trademark Search | Username Registration

2. ip定位

通过IP地址获取位置信息

https://www.ipplus360.com/
https://chaipip.com/ip.php
https://www.opengps.cn/Data/IP/LocHighAcc.aspx
https://www.ipip.net/ip.html

十三、收集相关企业信息

1. 企业资产

https://www.tianyancha.com/      天眼查 
https://www.qcc.com/  		    企查查
https://aiqicha.baidu.com/		爱企查
https://www.xiaolanben.com/pc     小蓝本

2. 应用信息

微信公众号 , 小程序 , app

七麦数据

3、信息收集平台

https://github.com/TophantTechnology/ARL
git clone https://github.com/TophantTechnology/ARL
cd ARL/docker/
docker volume create arl_db
docker-compose pull
docker-compose up -d 
docker-compose down

猜你喜欢

转载自blog.csdn.net/qq_15131581/article/details/128666286