1、主动式信息搜集(可获取到的信息较多,但易被目标发现)
2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。
3、被动式信息搜集(搜集到的信息较少,但不易被发现)
4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。
常用搜索语法:
intitle:KEYWORD //搜索网页标题中含有关键词的网页
intext:KEYWORD //搜索站点正文中含有关键词的网页
inurl:KEYWORD //搜索URL中包含有指定字符串的网址
inurl:php?id= //搜索PHP网页
site:DOMAIN //在指定站点内查找相关的内容
filetype:FILE //搜索指定类型的文件
我们可以同时附加多个条件进行筛选,比如 inurl:admin intitle:农具
两个筛选条件之间用空格隔开
关键字(搜索范围) 引擎
【1】完全匹配搜索——精确匹配 “” 引号 和书名号《》
查询词很长 ,baidu分析过后 可能是拆分
把包含引号部分 作为整体 顺序匹配 来搜索
引号为英文状态下的引号。
屏蔽一些百度推广
eg:
“网站推广策划” 整个名字
"“手机” / 《手机》 "
【2】± 加减号的用法
加号 同时包含两个关键字 相当于空格和and。
减号 搜索结果中不含特定查询词 —— 前面必须是空格 后面紧连着需要排除的词
eg:
电影 -搜狐
音乐 +古风
【3】OR的用法
搜索两个或更多关键字
eg:
“seo or 深圳seo”
可能出现其中的一个关键字,也可能两个都出现。
“seo or 你的名字”(这里不加引号)。
如果你的名字为常见名。你会发现意外的惊喜,和你同名同姓的居然还有同行业。
“seo or 深圳seo”(这里不加引号) 就发现了和同名同姓的,还跟我同行。
【4】intitle
网页标题内容——网页内容提纲挈领式的归纳
竞争页面
关键词优化
eg:
(搜的时候不加引号)
“intitle:管理登录”
“新疆 intitle:雪菊”
“网络推广 intitle:他的名字”
【5】intext和 allintext (针对google有效)
在网页的内容中出现,而不是标题,
找页面里包含‘SEO’,标题包含SEO的对应文章页面。
只搜索网页部分中包含的文字(忽略了标题,URL等的文字),
类似在某些网站中使用的“文章内容搜索”功能。
eg:
“深圳SEO intext:SEO”
【6】inurl
搜索网址中 url链接 包含的的字符串 (中文 英文),
竞争对手 排名
eg:
搜索登录地址,可以这样写“inurl:admin.asp”,
想搜索Discuz的论坛,可以输入inurl:forum.php,
“csdn博客 inurl:py_shell”
【7】site
搜索特定网页
看搜索引擎收录了多少页面。
——某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中
“胡歌 空格 insite:www.sina.com.cn”
【8】link
搜索某个网站的链接。
搜索某个网站url的内部链接和外部链接
不是对每个搜索引擎都很准,尤其是Google,
只会返回索引库中的一部分,并且是随机的一部分,
百度则不支持这个指令。
雅虎全面支持,而且查询得比较准确,
一般我们查看网站的链接都以雅虎为准,
【9】filetype
搜索你想要的电子书,限定在指定文档格式中
并不是所有的格式都会支持,现在百度支持的格式有pdf、doc、xls、all、ppt、rtf,
eg:
“python教程 filetype:pdf”
doc文件,就写“filetype:doc”,
“seo filetype:doc”,(搜的时候不加引号) ,
【10】related(只使用于google)
指定URL相关的页面、
一般都会显示与你网站有相同外链的网站。
竞争的对手,
相同的外链。
【11】 * 通配符 (百度不支持)
eg: 搜索 * 擎
【12】inanchor 导入链接 锚文字中包含 (百度不支持)
竞争对手
链接指向
【13】allintitle 包含多组关键字
【14】allinurl
【15】linkdomain (雅虎)
某域名反向链接 排除 得到外部链接
linkdomain: xxx.com -xxx.com
【16】related (google) 某个网站 关联页面
有共同外部链接
【17】domain 某一网站相关信息
“domain:url”
【18】index (百度)
“index of mp3”
【19】A|B 包含a或者b
Shodan与Google这种搜索网址的搜索引擎不同的是,
Shodan是用来搜索网络空间中在线设备的。
asn 区域自治编号
port 端口
org ip所属组织机构
os 操作系统类型
http.html 网页内容
html.title 网页标题
http.server http请求返回中server的类型
http.status http请求返回响应码的状态
city 市
country 国家
product 所使用的软件或产品
vuln CVE漏洞编号,例如:vuln:CVE-2014-0723
net 搜索一个网段,例如:123.23.1.0/24
country:"CN" os:"windows"
ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。
搜索语法
1、app:nginx 组件名
2、ver:1.0 版本
3、os:windows 操作系统
4、country:”China” 国家
5、city:”hangzhou” 城市
6、port:80 端口
7、hostname:google 主机名
8、site:thief.one 网站域名
9、desc:nmask 描述
10、keywords:nmask’blog 关键词
11、service:ftp 服务类型
12、ip:8.8.8.8 ip地址
13、cidr:8.8.8.8/24 ip地址段
通过以上不同种类的搜索引擎我们可以获得相当多的有用的信息,甚至平时搜索东西我们也可以通过zoomeye来找到自己想要的东西
天眼查是一款“都能用的商业安全工具”,根据用户的不同需求,实现了企业背景、企业发展、司法风险、经营风险、经营状况、知识产权方面等多种数据维度的检索。
企业信用信息公示系统
工业和信息化部ICP/IP地址/域名信息备案管理系统
以上几个可以用来深入了解渗透目标网站所属企业的相关信息
whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。
whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,
可以进行邮箱反查域名,爆破邮箱,社工,域名劫持,寻找旁站等等。
常用的工具有:
站长工具、爱站、微步在线
作用:
查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题
命令格式:nslookup domain[dns-server]
示例:nslookup www.163.com
命令格式:nslookup -qt=type domain[dns-server]
示例:nslookup -qt=CNAME www.163.com
其中,type可以是以下这些类型:
A 地址记录(直接查询默认类型)
AAAA 地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录
RP 负责人记录
RT 路由穿透记录
SRV TCP服务器信息记录
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录
查询语法:
nslookup–d[其他参数]domain[dns-server]
非权威应答:Non-authoritative answer,
除非实际存储DNS Server中获得域名解析回答的,都称为非权威应答。
也就是从缓存中获取域名解析结果。
address:目标域名对应物理IP可有多个
aliase:目标域名
同样nslookup也可以验证是否存在域传送漏洞,步骤如下:
nslookup进入交互式模式
Server 设置使用的DNS服务器
ls命令列出某个域中的所有域名
子域名收集可以发现更多渗透测试范围内的域名/子域名,以增加漏洞发现机率;
探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。
常用的工具有:
子域名挖掘机Layer、
subDomainsBrute、
Dnsenum、
Dnsmap
这里推荐一个在线收集子域名的网站 https://phpinfo.me/domain/
但是可能会出现遇到泛解析防御机制的情况
现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。
什么是CDN呢?
CDN的全称是Content Delivery Network,即内容分发网络。
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,
CDN系统能够实时地根据网络流量和各节点的连接、
负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上
其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
如果想获取真实IP,我们可以使用以下几种方法
1.多地Ping法:由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN。
这里推荐一个网站可以多个地点ping服务器,https://asm.ca.com/en/ping.php
2.二级域名法:目标站点一般不会把所有的二级域名放cdn上。
通过在线工具
如站长帮手,收集子域名,确定了没使用CDN的二级域名后。
本地将目标域名绑定到同IP(修改host文件),如果能访问就说明目标站与此二级域名在同一个服务器上;
如果两者不在同一服务器也可能在同C段,扫描C段所有开80端口的IP,然后挨个尝试。
3.nslookup法:
找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,
而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。
4.Ping法:
直接ping example.com而不是www.example.com,因
为现有很多CDN厂商基本只要求把www.example.com cname到CDN主服务器上去,
那么直接ping example.com有可能直接获得真实IP。
通过识别目标网站所使用的操作系统、CMS、服务器与中间件信息,
可以帮助我们进一步了解渗透测试环境,可以利用已知的一些CMS漏洞或中间件漏洞来进行攻击。
1.指定路径下指定名称的js文件或代码
2.指定路径下指定名称的css文件或代码
3.中的内容,有些程序标题中会带有程序标识,但不是很多。
4.meta标记中带程序标识
5.display:none中的版权信息。
6.页面底部版权信息,关键字© Powered by等。
7.readme.txt、License.txt、help.txt等文件。
8.指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件
等,一般管理员不会修改它们。
9.注释掉的html代码中
访问网站:
http://www.xxx.com/index.html
http://www.xxx.com/inDex.html
Windows操作系统不区分大小写,Linux系统大小写敏感,用此方法能够判断是Windows还是Linux系统。
工具 :
云悉指纹、
Whatweb、
httprint、
Bugscanner、
浏览器插件 wappalyzer
扫描端口可以使用Nmap,masscan进行扫描探测,
尽可能多的搜集开启的端口好已经对应的服务版本,
得到确切的服务版本后可以搜索有没有对应版本的漏洞。
常见的端口信息及渗透方法:
端口 ———————————— 服务 —————————— 渗透用途
tcp 20,21
FTP 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
tcp 22
SSH 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等
tcp 23
Telnet 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令
tcp 25
SMTP 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑
tcp/udp 53
DNS 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
tcp/udp 69
TFTP 尝试下载目标及其的各类重要配置文件
tcp 80-89,443,8440-8450,8080-8089
各种常用的Web服务端口 可尝试经典的topn,,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……
tcp 110
POP3 可尝试爆破,嗅探
tcp 111,2049
NFS 权限配置不当
tcp 137,139,445
Samba 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
tcp 143
IMAP 可尝试爆破
udp 161
SNMP 爆破默认团队字符串,搜集目标内网信息
tcp 389
LDAP ldap注入,允许匿名访问,弱口令
tcp 512,513,514
Linux rexec 可爆破,rlogin登陆
tcp 873
Rsync 匿名访问,文件上传
tcp 1194
OpenVPN 想办法钓VPN账号,进内网
tcp 1352
Lotus 弱口令,信息泄漏,爆破
tcp 1433
SQL Server 注入,提权,sa弱口令,爆破
tcp 1521
Oracle tns爆破,注入,弹shell…
tcp 1500
ISPmanager 弱口令
tcp 1723
PPTP 爆破,想办法钓VPN账号,进内网
tcp 2082,2083
cPanel 弱口令
tcp 2181
ZooKeeper 未授权访问
tcp 2601,2604
Zebra 默认密码zerbra
tcp 3128
Squid 弱口令
tcp 3312,3311
kangle 弱口令
tcp 3306
MySQL 注入,提权,爆破
tcp 3389
Windows rdp shift后门[需要03以下的系统],爆破,ms12-020
tcp 3690
SVN svn泄露,未授权访问
tcp 4848
GlassFish 弱口令
tcp 5000
Sybase/DB2 爆破,注入
tcp 5432
PostgreSQL 爆破,注入,弱口令
tcp 5900,5901,5902
VNC 弱口令爆破
tcp 5984
CouchDB 未授权导致的任意指令执行
tcp 6379
Redis 可尝试未授权访问,弱口令爆破
tcp 7001,7002
WebLogic Java反序列化,弱口令
tcp 7778
Kloxo 主机面板登录
tcp 8000
Ajenti 弱口令
tcp 8443
Plesk 弱口令
tcp 8069
Zabbix 远程执行,SQL注入
tcp 8080-8089
Jenkins,JBoss 反序列化,控制台弱口令
tcp 9080-9081,9090
WebSphere Java反序列化/弱口令
tcp 9200,9300
ElasticSearch 远程执行
tcp 11211
Memcached 未授权访问
tcp 27017,27018
MongoDB 爆破,未授权访问
tcp 50070,50030
Hadoop 默认端口未授权访问
Nmap是一个网络连接端口扫描软件,用来扫描网上电脑开放的网络连接端口。
确定哪些服务运行在哪些连接端口,
并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
功能:
1、 主机发现
2、 端口扫描
3、 版本侦测
4、 OS侦测
旁站:是和目标网站在同一台服务器上的其它的网站。
旁注:通过入侵安全性较差的旁站,之后可以通过提权跨目录等手段拿到目标服务器的权限。
工具:
K8_C段旁注工具、
WebRobot、
御剑、
明小子 …
C段:每个IP有ABCD四个段,
也就是说是D段1-255中的一台服务器,
然后利用工具嗅探拿下该服务。
比如192.168.3.0-255的设备都处于同一个c段。
C段入侵:
目标ip为192.168.1.128,可以入侵192.168.1.*的任意一台机器,
然后利用一些黑客工具嗅探获取在网络上传输的各种信息。
工具:
Cain、
Sniffit 、
Snoop、
Tcpdump、
Dsniff
其他信息
Web敏感文件
robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件 …
WAF信息
WAF识别大多基于Headers头信息,
还可以使用Wafw00f,Sqlmap的waf脚本,Nmap的http-waf-detect和http-waf-fingerprint脚本等等。
相关漏洞
漏洞查询站点:exploitdb、hackerone、CNVD、0day5、乌云漏洞库镜像站 …
httpscan是一个扫描指定CIDR网段的Web主机的小工具。
和端口扫描器不一样,httpscan是以爬虫的方式进行Web主机发现,
因此相对来说不容易被防火墙拦截
Usage:./httpscan IP/CIDR –t threads
Example:./httpscan.py 10.20.30.0/24 –t 10
https://github.com/zer0h/httpscan
python3.x ./dirsearch.py -u "http://xxxx.xxx" -e php
dirsearch需要使用Python3.x
替换"http://xxxx.xxx"为目标网址即可
static目录 下的 webpack目录
Webpack 是一个前端资源加载/打包工具。
它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。
它的存在依赖于node.js
包揽了其它静态文件 , 可以从中找一下敏感数据或是接口
/%20/swagger-ui.html
/actuator
/actuator/auditevents
/actuator/beans
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/health
/actuator/heapdump
/actuator/httptrace
/actuator/hystrix.stream
/actuator/info
/actuator/jolokia
/actuator/logfile
/actuator/loggers
/actuator/mappings
/actuator/metrics
/actuator/scheduledtasks
/actuator/swagger-ui.html
/actuator/threaddump
/actuator/trace
/api.html
/api/index.html
/api/swagger-ui.html
/api/v2/api-docs
/api-docs
/auditevents
/autoconfig
/beans
/caches
/cloudfoundryapplication
/conditions
/configprops
/distv2/index.html
/docs
/druid/index.html
/druid/login.html
/druid/websession.html
/dubbo-provider/distv2/index.html
/dump
/entity/all
/env
/env/(name)
/eureka
/flyway
/gateway/actuator
/gateway/actuator/auditevents
/gateway/actuator/beans
/gateway/actuator/conditions
/gateway/actuator/configprops
/gateway/actuator/env
/gateway/actuator/health
/gateway/actuator/heapdump
/gateway/actuator/httptrace
/gateway/actuator/hystrix.stream
/gateway/actuator/info
/gateway/actuator/jolokia
/gateway/actuator/logfile
/gateway/actuator/loggers
/gateway/actuator/mappings
/gateway/actuator/metrics
/gateway/actuator/scheduledtasks
/gateway/actuator/swagger-ui.html
/gateway/actuator/threaddump
/gateway/actuator/trace
/health
/heapdump
/heapdump.json
/httptrace
/hystrix
/hystrix.stream
/info
/intergrationgraph
/jolokia
/jolokia/list
/liquibase
/logfile
/loggers
/mappings
/metrics
/monitor
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/spring-security-oauth-resource/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/static/swagger.json
/sw/swagger-ui.html
/swagger
/swagger/codes
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger-dubbo/api-docs
/swagger-ui
/swagger-ui.html
/swagger-ui/html
/swagger-ui/index.html
/system/druid/index.html
/template/swagger-ui.html
/threaddump
/trace
/user/swagger-ui.html
/v1.1/swagger-ui.html
/v1.2/swagger-ui.html
/v1.3/swagger-ui.html
/v1.4/swagger-ui.html
/v1.5/swagger-ui.html
/v1.6/swagger-ui.html
/v1.7/swagger-ui.html
/v1.8/swagger-ui.html
/v1.9/swagger-ui.html
/v2.0/swagger-ui.html
/v2.1/swagger-ui.html
/v2.2/swagger-ui.html
/v2.3/swagger-ui.html
/v2/swagger.json
/webpage/system/druid/index.html
注册完后登陆的功能也少的可怜,只能上传上传头像。
格式被严格限制,绕不过去,而上传上去了,也是上传到了oss上
没有直接调用oss上的图片资源,而是将用户的图片地址存储起来
控制存储地址, 能造成ssrf
有关图片(头像)操作的地方
baseurl为api的服务器地址,那groupId是什么
翻了翻别的地方的js,
此域名的每个子域名,都对应着一个id,有了id才知道是哪个子公司进行的相应操作
拿到groupId
进行不了相应操作, 没有携带access_token
网站有个注册功能,登陆后,它会自动给你分配一个access_token
0x01 前言
0x02 ZoomEyeAPI脚本编写
先登录,然后获取access_token
user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
def Login():
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token
if __name__ == '__main__':
print Login()
def search():
headers = {'Authorization': 'JWT ' + Login()}
r = requests.get(url = 'https://api.zoomeye.org/host/search?query=tomcat&page=1',
headers = headers)
response = json.loads(r.text)
print(response)
if __name__ == '__main__':
search()
JSON数据,
我们可以取出IP部分…
print(response)
for x in response['matches']:
print(x['ip'])
HOST的单页面采集
接下来,就是用FOR循环…获取多页的IP
#-*- coding: UTF-8 -*-
import requests
import json
from click._compat import raw_input
def Login():
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token
def search():
headers = {'Authorization': 'JWT ' + Login()}
for i in range(1, int(PAGECOUNT)):
r = requests.get(url='https://api.zoomeye.org/host/search?query=tomcat&page=' + str(i),
headers=headers)
response = json.loads(r.text)
print(response)
for x in response['matches']:
print(x['ip'])
if __name__ == '__main__':
user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
PAGECOUNT = raw_input('[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):')
search()
这样就取出了你想要的页码的数据,然后就是完善+美观代码了…
#-*- coding: UTF-8 -*-
import requests
import json
from click._compat import raw_input
def Login(user,passwd):
data_info = {'username' : user,'password' : passwd}
data_encoded = json.dumps(data_info)
respond = requests.post(url = 'https://api.zoomeye.org/user/login',data = data_encoded)
try:
r_decoded = json.loads(respond.text)
access_token = r_decoded['access_token']
except KeyError:
return '[-] INFO : USERNAME OR PASSWORD IS WRONG, PLEASE TRY AGAIN'
return access_token
def search(queryType,queryStr,PAGECOUNT,user,passwd):
headers = {'Authorization': 'JWT ' + Login(user,passwd)}
for i in range(1, int(PAGECOUNT)):
r = requests.get(url='https://api.zoomeye.org/'+ queryType +'/search?query='+queryStr+'&page='+ str(i),
headers=headers)
response = json.loads(r.text)
try:
if queryType == "host":
for x in response['matches']:
print(x['ip'])
if queryType == "web":
for x in response['matches']:
print(x['ip'][0])
except KeyError:
print("[ERROR] No hosts found")
def main():
print (" _____ _____ ____ " )
print ("|__ /___ ___ _ __ ___ | ____| _ ___/ ___| ___ __ _ _ __" )
print (" / // _ \ / _ \| '_ ` _ \| _|| | | |/ _ \___ \ / __/ _` | '_ \ ")
print (" / /| (_) | (_) | | | | | | |__| |_| | __/___) | (_| (_| | | | |")
print ("/____\___/ \___/|_| |_| |_|_____\__, |\___|____/ \___\__,_|_| |_|")
print (" |___/ ")
user = raw_input('[-] PLEASE INPUT YOUR USERNAME:')
passwd = raw_input('[-] PLEASE INPUT YOUR PASSWORD:')
PAGECOUNT = raw_input('[-] PLEASE INPUT YOUR SEARCH_PAGE_COUNT(eg:10):')
queryType = raw_input('[-] PLEASE INPUT YOUR SEARCH_TYPE(eg:web/host):')
queryStr = raw_input('[-] PLEASE INPUT YOUR KEYWORD(eg:tomcat):')
Login(user,passwd)
search(queryType,queryStr,PAGECOUNT,user,passwd)
if __name__ == '__main__':
main()
0x03 ShoDanAPI脚本编写
Shodan是互联网上最可怕的搜索引擎。
CNNMoney的一篇文章写道,
虽然目前人们都认为谷歌是最强劲的搜索引擎,
但Shodan才是互联网上最可怕的搜索引擎。
与谷歌不同的是,Shodan不是在网上搜索网址,
而是直接进入互联网的背后通道。
Shodan可以说是一款“黑暗”谷歌,
一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。
每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。
Shodan所搜集到的信息是极其惊人的。
凡是链接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等等都会被轻易的搜索到。
Shodan的使用者曾发现过一个水上公园的控制系统,一个加油站,甚至一个酒店的葡萄酒冷却器。
而网站的研究者也曾使用Shodan定位到了核电站的指挥和控制系统及一个粒子回旋加速器。
Shodan真正值得注意的能力就是能找到几乎所有和互联网相关联的东西。
而Shodan真正的可怕之处就是这些设备几乎都没有安装安全防御措施,其可以随意进入。
0x04 简易BaiduURL采集脚本编写
0x05 【彩蛋篇】论坛自动签到脚本
https://github.com/super-l/superl-url
@ 环境 3.7 python
pip install pymysql
pip install tldextract
pip install tld==0.7.6 https://pypi.org/project/tld/0.7.6/
pip install ConfigParser
没有验证码限制
或者一次验证码可以多次使用的地方
使用已知用户对密码进行暴力破解
或者用一个通用密码对用户进行暴力破解。
简单的验证码爆破。
案列:某药app暴力破解
抓包一看请求全是明文的
先从登陆界面开始:
随便输入几个手机号和密码
返回内容不一样
手机号没有注册过的,返回手机号不存在,手机号注册过的,返回用户名密码错误,
这就好办了,自己构造个手机号字典去刷,如图:
ok,拿到手机号了,
下面就开始暴力破解验证码了,
用自己手机试了下,验证码是4位的,而且请求也是明文的,
接下来暴力破解验证码,
刚开始成功了,但是用这个验证码却登陆不上去,
于是就关了那个爆破结果,后来我静下来想想,想到人家验证码可能是一次有效的,
后来我又刷了一遍,但是可能被发现了,再刷结果返回302了,失败
于是我发现有个找回密码功能,
也是手机验证码,填上自己自定义的密码,然后获取验证码,抓包
继续爆破,这次找到了,
其实暴力破解登陆验证码的时候跟这个一样,只不过我没保存下来,如图:
用我修改的密码登陆,如图:
登陆成功
总结,这次爆破的跟之前不太一样,
之前的验证码都是用过之后还有效的,这次验证码是一次性的,
一些工具及脚本
Burpsuite
htpwdScan 撞库爆破必备 URL: https://github.com/lijiejie/htpwdScan
hydra 源码安装xhydra支持更多的协议去爆破 (可破WEB,其他协议不属于业务安全的范畴)
利用服务器的session不变机制,借他人之手获得认证和授权,冒充他人。
案列:新浪广东美食后台验证逻辑漏洞,直接登录后台,566764名用户资料暴露
网站源码可直接下载本地,分析源码可直接登陆后台。
暴露所有用户个人资料,联系方式等,目测用户566764名。
用户资料暴露
566764名用户资料
直接进入后台
源码直接下载
566764名用户资料直接跨后台浏览
修复方案:
漏洞较多,不知怎么说起,只列举一项
phpsessid会话固定,通过利用此漏洞,攻击者可以进行会话固定攻击。
在一个会话固定攻击,攻击者将用户的会话ID之前,用户甚至登录到目标服务器
从而消除了需要获得用户的会话ID之后。
从php.ini设置session.use_only_cookies = 1。
该选项使管理员能够使他们的用户不会受到攻击涉及在URL传递的会话ID,缺省值为0。
修改cookie中的某个参数可以登录其他用户。
案例:益云广告平台任意帐号登录
只需要添加cookie
yibouid=数字 即可登录任意用户帐号!
通过遍历 找到一个官方管理的ID 291
登录
修复方案:
增强对cookie的验证机制!
未使用https,是功能测试点,不好利用。
前端加密,用密文去后台校验,并利用smart decode可解。
抓包修改手机号码参数为其他号码尝试,
例如在办理查询页面,输入自己的号码然后抓包,修改手机号码参数为其他人号码,
查看是否能查询其他人的业务。
抓包修改用户或者邮箱参数为其他用户或者邮箱
案例:绿盟RSAS安全系统全版本通杀权限管理员绕过漏洞,包括最新 RSAS V5.0.13.2
RSAS默认的审计员
账号是:reporter,auditor
密码是:nsfocus
普通账户登陆后
查看版本,为最新V**...** 版本
然后修改审计员密码,抓包,
将referer处的auditor和post的数据里面的auditor一律修改为admin,
也就是管理员账号,
2处修改完后的数据包如下图:
提交数据后,直接返回给我们超级管理员的密码修改页面,利用逻辑错误直接得到超级权限,如图:
我们直接在这里修改admin的密码,然后提交即可:
超级管理员登陆
查看自己的订单id,然后修改id(加减一)查看是否能查看其它订单信息。
案例:广之旅旅行社任意访问用户订单
可以任意访问旅客的订单,泄露旅客的敏感信息!
用户登陆广之旅官方网站注册登陆
http://www.gzl.com.cn/
只要随便假订一张订单,在我的订单里面获得订单号,就能穷举其它订单信息
http://www.gzl.com.cn/Users/Order/Groups.aspx?OrderId=订单号
该页没过滤权限,相信还有更大的漏洞。
修复方案:
对
http://www.gzl.com.cn/Users/Order/Groups.aspx
订单页增加过滤
例如积分兑换处,
100个积分只能换商品编号为001,
1000个积分只能换商品编号005,
在100积分换商品的时候抓包把换商品的编号修改为005,用低积分换区高积分商品。
案例:联想某积分商城支付漏洞再绕过
http://ideaclub.lenovo.com.cn/club/index.php?m=goods&c=lists
还是这个积分商城、 看我怎么用最低的积分换最高积分的礼物的~
1.我先挑选出我最喜欢的礼物,并复制下goods_id=1419f75d406811e3ae7601beb44c5ff7
2.选择积分最低的礼物兑换(5积分的杯子),并填好相关信息,抓包修改goods_id
替换为1419f75d406811e3ae7601beb44c5ff7
3.这里显示兑换成功,虽然显示的是被子兑换成功,但是兑换记录里,就不相同了
到这我们心仪的礼物要30积分,我只花5积分就兑换来了,是不是很划算?
修复方案:
积分参数还是放后台来操作,有goods_id,在后台计算的时候取出并计算,这样会安全些。
渗透信息收集–资产探测
信息收集:
来源 url采集
inurl:xxx.php 学校
注入点批量检测 :枫叶
sql注入验证 safe3 注入安全检测
猜解表名 字段名
上传xxx.zip 内容x.php
社会工程学 密码生成工具 -猜密码
http://www.hacked.com.cn/pass.html
或者自己写一个
后台
敏感配置文件
eg: wordpress 默认后台 http://xxxx.com/wp-login.php
admin
历史密码
姓名 字母拼写
家庭住址
学校
网站/域名
邮件地址
没事闲的 逛逛fofa 发现还是 admin 空
但是 、、、、
这是个什么鬼
iis + asp
大马试一试
老鼠盗洞 一打一个准
已经擦了屁股 删了入口
逗的是 好像是个人电脑
应该是某某小区的门卫电脑忘记关掉了
这个shell 不好用 一句话连一下
you haven’t updated sqlmap for more than 440 days!!!
inurl: http:// tw
中间件
Microsoft-IIS
版本: 7/7.5
fast-CGI运行模式 文件路径/xx.jpg
Nginx
1.1
apache tomcat
文件包含漏洞(CVE-2020-1938)
二、影响范围
受影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
不受影响版本
Apache Tomcat = 7.0.100
Apache Tomcat = 8.5.51
Apache Tomcat = 9.0.31
远程代码执行漏洞(CVE-2019-0232)
远程命令执行漏洞(CVE-2017-12615)
跨站脚本漏洞处理(CVE-2019-0221)
apache coyote
.aspx jsp
site: 域名
多地ping
ycxy.com
60.216.8.0/24
223.99.192.0/24
POST注入 GET注入
./dirsearch.py -u http://223.99.192.14:8080/ -e *
-u 指定url
-e 指定网站语言—— *指全部语言可换php等
-w 可以加上自己的字典(带上路径)
-r 递归跑(查到一个目录后,在目录后在重复跑,很慢,不建议用)
–random-agents 使用代理(使用的代理目录在uesr-agents.txt中,可以自己添加)
5webdav 漏洞
cadaver是WEBDAV的 客户端
DAVTest
2021 hw 0day
暴力穷举破解
XSS跨站伪造请求
sql注入 sql-inject
RCE
文件包含
文件下载
文件上传
越权访问
目录遍历
敏感信息泄露
PHP反序列化
XXE
url重定向
SSRF
waf绕过
CRLF
sql插入
insert into test(name,second) values(null,null)