web安全攻防
大家好,目前我的身份是安全爱好者,DeadEye安全团队外围主力提鞋扫地选手,0年安全行业经验,以下内容仅供参考,请结合自己的实验确认,以免误人子弟。B站同步分享了视频教学,关键词:sec875。说真的,其实整理这一套的目的就是为了奖励与人民币,没钱吃蟹了。。哪个平台若能给予奖励以后还有后续!!如果没有奖励,出于热爱之心我也乐于分享出去!!我会过一段时间再问问,赏一块两块吧:)啊哈
B站视频 https://space.bilibili.com/474397766/channel/index
免责声明:本此整理的知识脉络参考书籍与资料甚多,取众家之精髓于此,所有参考资料都公布在文章里,如有实战需求请在靶机范围内进行
一、渗透测试之信息收集
主要收集服务器的配置信息,网站的敏感信息,域名,子域名,网站系统,CMS指纹,网站真实IP,开放端口等
收集域名信息
whois查询
用于收集网络注册信息,注册的域名,IP地址等信息。
kali:whois baidu.com
在线whois查询工具:爱站工具网(https://whois.aizhan.com)、站长之家(whois.chinaz.com)和Virus Total(https://www.virustotal.com)
备案信息查询
国内法律规定,网站的所有者需向国家部门申请备案,防止从事非法网络经营活动。
ICP备案查询网:http://www.beianbeian.com 天眼查:http://www.tianyancha.com
收集敏感信息
谷歌语法:
- site 域名
- inurl URL中存在的关键字网页
- intext 网页正文关键字
- filetype 文件类型
- link 返回所有和该域名做了链接的URL
- info 查找站点的一些基本信息
- cache 某些内容的缓存
burp suite的repeater功能,查看服务器类型和版本、PHP版本等
github协同环境,开发环境,代码托管,版本控制等环境看看泄露的信息
在线漏洞库查询:比如乌云
收集子域名信息
如果目标网络规模大,直接从主域入手是没什么机会的,他们也有自己的安全团队。
先从目标的某个子域开始,再想办法迂回接近真正目标是攻击者最主要的思维。
子域名检测工具
推荐:Layer子域名挖掘机、sublist3r和subDomainsBrute
Layer子域名挖掘机:直接输入域名
subDomainsBrute:python subDomainsBrute.py baidu.com
- kali : dnsenum
参考资料:https://blog.51cto.com/simeon/2114251
基于字典 dnsenum -f dns.txt baidu.com
基于已有的数据等映射的方式查询: dnsenum baidu.com
sublist3r:
maltego ce:官网注册,* https://www.maltego.com/ https://www.maltego.com/ce-registration/
参考资料:https://www.jianshu.com/p/012fc0fdacc1
搜索引擎枚举子域名
site: baidu.com
第三方聚合应用枚举
很多第三方服务汇聚了大量DNS数据集,检索某个域名会显示很多相关的子域名信息
比如DNSdumpster网站(https://dnsdumpster.com)、在线DNS侦查和搜索的工具
-
DNS记录
A记录 DNS Servers 名字最终解析IP地址(NS记录指派了我来做) 名字->IP地址
NS记录 NS(Name Server) 负载均衡,分配哪个服务器来进一步解析A记录的任务(指派谁去做)
MX记录 MX(Mail Exchanger)
CNAME记录 CNAME(Canonical Name )别名记录
证书透明度公开日志枚举
证书透明度(CT)是证书授权机构(CA)的一个项目,颁发一个证书就把相关的东西放到公共日志中。里面常包含域名、子域名和邮件地址。
查某个域名所属证书最简单的方法就是搜索一些公开的CT日志
推荐crt.sh(https://crt.sh)和censys(https://censys.io)
其他在线子域名爆破网站,IP反查绑定域名网站
收集常用端口信息
Nmap、Masscan、ZMap、御剑
- Nmap
-A 全面扫描 -sP ping扫描,不易被发现 -P0 防火墙禁止ping ,穿透防火墙
--packet-trace 包原理跟踪 -PS 穿透防火墙 -PS80,100-200 防止RST被丢弃 -PA
-PU -PE;-PP;-PM ICMP协议的ping -PA 内网探测 -n 禁止反向解析域名 -R 反向解析域名
-6 --traceroute -PY SCTP协议 -sS 半开放式,较隐蔽
- 端口状态 open closed filtered
-T0-5 -P 指定端口
指纹识别
指CMS、操作系统和web容器固有的特征来识别它们
CMS:整站系统;文章系统
代表工具:御剑、Whatweb、椰树等
在线网站:BugScaner(whatweb.bugscaner.com/look),云悉指纹(www.yunsee.cn/finger.html),whatweb(https://whatweb.net/)
vim编辑器 i ESC shift+: wq
查找真实IP
目标服务器不存在CDN:直接www.ip138.com获取
C段 旁站
- 目标服务器存在CDN
静态数据资源(html,css,js图片等文件)直接缓存到节点服务器上,当用户有实际数据交互时才会从远程web服务器上响应。
目标购买CDN服务时,直接ping目标的域名得到的只是离我们最近的一台目标节点的CDN服务器,无法直接得到目标的真实IP
- 判断目标是否使用了CDN
直接ping目标主域,得到一个域名百度一下或者直接观察两者区别发现所有的关键词(甚至包含cdn词语)出入很大,以此来判断是否使用了CDN
在线网站17CE(https://www.17ce.com)超级ping,IP都一致则极有可能没有CDN
绕过CDN寻找真实IP
- 内部邮箱源:目标网站用户注册或RSS订阅等,邮件、邮件头中的邮件服务器域名IP,ping邮件服务器域名
- 扫描网站测试文件:phpinfo等
- 分站域名:流量小,可能没挂CDN
- 国外访问:App Synthetic Monitor(https://asm.ca.com/en/ping.php)
- 查询域名的解析记录:NETCRAFT(https://www.netcraft.com)
- 目标网站有自己的APP,抓取一下APP请求,用Fiddler或burp suite
- 绕过CloudFlare CDN:在线网站Cloud FlareWatch(http://www.crimeflare.us/cfs.html#box)
验证获取的IP
IP+端口访问
收集敏感目录文件
网站目录扫描工具:DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py、Sensitivefilescan、Weakfilescan
还可以用在线工具站WebScan(http://webscan.cc/)
社工库
二、搭建漏洞环境及实战
在linux系统中安装LANMP
linux,Apache,Nginx,MySQL和PHP应用环境
WDlinux集成安装包
kali linux
wget http://dl.wdlinux.cn/files/lanmp_v3.tar.gz
tar zxvf lanmp_v3... 解压
sh lanmp.sh
推荐:pikachu B站 xampp
安装pikachu集成靶机
三、常用的渗透测试工具
sqlmap
布尔类型,时间,报错,联合查询,堆查询
- 判断参数是否存在注入
- 判断web请求数据包是否存在注入
- 查询与选择数据库
- 获取与选择表名
- 获取与选择字段
- 获取数据库的所有用户
- 获取数据库用户的密码
- 获取当前网站数据库的名字
- 获取当前网站数据库的用户名称
参考资料:HackerSploit:https://www.youtube.com/channel/UC0ZTPkdxlAKf-V33tqXwi3Q
- 用户手册https://sqlmap.campfire.ga/
phpstudy wamp xampp
kali sqlmap tips:
sqlmap 运行
post请求包检测:
-
sqlmap -u http://192.168.1.4/vul/sqli/sqli_id.php --data="id=1&submit=%E6%9F%A5%E8%AF%A2"
-
sqlmap -r ./1.txt
-
sqlmap -r ./1.txt --dbs
-
sqlmap -r ./1.txt -D pikachu --tables
-
sqlmap -r ./1.txt -D pikachu -T users --columns
-
sqlmap -r ./1.txt -D pikachu -T users -C username
-
sqlmap -r ./1.txt -D pikachu -T users -C username,password --dump
-
sqlmap -r ./1.txt --users
-
--password
-
当前网站数据库名称 --current-db
-
当前网站数据库的用户名称 --current-user
-
当前用户是否为管理权限 --is-dba
-
列出数据库管理员角色 --roles
-
HTTP Referer头 --referer
-
运行自定义SQL语句 --sql-shell
-
运行任意操作系统命令 --os-cmd
-
从数据库服务器中读取文件 --file-read
-
上传文件到数据库服务器中 --file-dest
-
绕过脚本 --tamper
burp suite
- 参考资料:https://www.gitbook.com/book/t0data/burpsuite/details
- Burpsuite视频:https://www.youtube.com/watch?v=G3hpAeoZ4ek
https 导入CA证书 设置SSL
基于信息的实战
火狐插件:foxyProxy Basic 代理之间切换
about:config
network.proxy.allow_hijacking_localhost
dvwa docker dvwa https://hub.docker.com/r/vulnerables/web-dvwa/
https://portswigger.net/web-security
apt-get install docker.io
docker version
service docker start
update-rc.d docker enable //暂时不开启
docker run --rm -it -p 80:80 vulnerables/web-dvwa //这些参数有助于学习时用一下,退出时不遗留垃圾
192.168.119.131 kali本地ip访问靶机触发抓包
docker run hello-world
docker image ls
localhost 浏览器
burp:
- 只关注范围内的流量
Target: sitemap-删除 show only in-scope items scope http://localhost/
Proxy: Options Intercept Client Requests-and URL is in target scope
NMAP
- 参考资料《 Nmap渗透测试指南》
zmap
which locate 查找文件
/usr/share/nmap/scripts 脚本路径
nmap -sV 192.168.1.4 服务,版本
nmap --script=brute 192.168.1.4 暴力破解
nmap -p 3306 --script=mysql-brute 192.168.1.4
kali linux
- 参考资料《kali linux高级渗透测试》 《Linux Basics for Hackers(中文翻译稿)【(美)OccupyTheWeb 著】》
四、web漏洞
SQL注入漏洞
1.拼接,可控
mysql 5.0以后 information_schema数据库 SCHEMATA TABLES COLUMNS表名
limit用法 limit 0,1 从0开始取一条
mysql # --空格 /**/ 注释符
函数 database() version() user()
union order by
SELECT * FROM users
UNION SELECT * FROM users
ORDER BY username,2,3
- mysql
数据库兼容性声明符
这里不采用,书籍中给出的术语。这是我自己命名的术语,请知晓。
/*! */ mysql用于声明其他数据库不兼容则不使用里面的SQL语句,但是mysql本身会执行里面的SQL语句
PHP 手册https://www.php.net/manual/zh/function.sleep.php
kali更新
/etc/apt/sources.list 软件列表的来源地址,国内通常使用清华源或者阿里的源(百度关键词: kali 源)
apt-get update 就是声明一下可更新的软件列表(比如,您需要更新的列表里面包括QQ,YY,微信等软件请知晓),时间一长这个表会发生变化。列表里面如果没有英雄联盟这个软件,则无法安装与更新
apt-get upgrade 软件升级,这是真正的把你的QQ从1.0版本升级到最新版本,不是给你一个列表来示意!如果升级过程中改动非常大要删除以前的东西,比如删除一些过时的软件包或安装新的依赖项,则不升级
apt-get dist-upgrade 发行版升级,比如删除一些过时的软件包或安装新的依赖项,则升级与安装
- 参考资料https://www.youtube.com/watch?v=ElWo5fd4rIU&list=PLYmlEoSHldN7HJapyiQ8kFLUsk_a7EjCw
- 参考资料https://github.com/ckjbug/kali-Linux-learning
DVWA靶机
service docker start
docker run --rm -it -p 80:80 vulnerables/web-dvwa
192.168.119.131
请求代理伪装
位置:Proxy-Options-Match and Replace
repeater和comparer组合使用
在修改数据包以后无法直观的看见修改第一次与修改第二次的区别,因此使用比较器。
payload编码
1‘
1‘ OR 1=1 #
右键- URL-encode as you type
decoder编解码器
双层,多层URL编码
编解码知识的绕过是:浏览器会使用URL编码将用户输入的变量与值传给后台,而后台没有进行正确的解码。
一个东西经过几次编码以后,表达的是一个意思,而后台误以为是新的东西过来了,错误性判断导致绕过。
以上知识看起来需要找到开发课程,提到URL编码的应用场景以及后台对接收到的URL编码参数进行怎样的接收和处理。但本质上在让我们关注开发课程里面,对流量的产生(用户从浏览器发出的流量)到流量的接收与处理这整个过程,中间都发生了什么。
不仅要理解这个例子,还要通过例子看到本质,这次是编码函数接收,下次可能会出现正则过滤,安全检查函数等,有这种绕过就可能存在其他绕过,举一反三。
五、Web App Penetration Testing
metasploit2靶机
dvwa 难度:low 如果您有此靶机可以直接使用DVWA,如果是一个个跟着我的视频刷过来的,我想你已经把docker靶机的DVWA容器准备好了。
Vulnerability: Brute Force 蛮力
输入账户密码:test 12345 此处插一个广告:考证渗透测试,内网渗透以及红蓝对抗,认准微信公众号:DeadEye安全团队 同时我也是DeadEye团队的“外围“主力成员,sec875。因为我技术菜的抠脚,不敢认领核心成员~~emmm。。等我从农夫安全团队出师后,我再来认领这个称号。。同时再自封一个农夫安全团队扫地僧称号。。TQ说不是开源的问题,而是没有实验环境,这句话很精辟。
转到intruder
cluster bomb 焦束炸弹型爆破
kali linux中已经集成了常见的弱账号密码字典
/usr/share/wordists/metasploit/adobe_top100_pass.txt 得到账号为:admin 密码为:password
kali crunch字典生成工具,比如现在大家都知道了大小写加数字加字母加符号,我们可以选择性的生成字典,比如生成三个维度的:1234567890abcdefghijklmnopqrstuvwsyz!()@#¥. 我们可以先从数字开始,先测试弱口令,一个个维度的逐渐增加。数字型密码,字母型密码,混合型密码,密码长度选择10-12
网络中还有一些个性化的个人信息关键词强相关的密码生成器,这需要自己找。您可以只需学会这一个技巧去SRC盯着弱口令的密码刷,然后写个报告把漏洞提交,体验一下白帽子的乐趣!
Web Application Firewall Detection With WAFW00F
web应用程序防火墙 waf 黑盒,灰盒,白盒。企业为了节省白帽子门的合法测试时间,可能会把源码,目标都给你看,然后再针对性的测试,找到问题点。
如果存在waf,这个时候就需要用到编码,已特定的编码方式绕过waf。
这个waf检测工具就是wafw00f
lbd负载均衡检测
Target Scope And Spidering
http://192.168.119.132/mutillidae/
由于burp社区版没有spider模块了,使用dirb来代替蜘蛛爬行功能,扫描功能使用nikto来代替
- nikto手册:https://cirt.net/nikto2-docs/
nikto -host http://192.168.119.132/mutillidae/
dirb http://192.168.119.132/mutillidae/
Discovering Hidden Files With ZAP
寻找隐藏的文件
- https://portswigger.net/web-security burp官网培训
- https://www.youtube.com/playlist?list=PLUFkSN0XLZ-mWD8E-08bQNRRzK6bT12Fi 流量
lsb_release -a //查看发行版
apt-get update
apt-get install zaproxy OWASP
zaproxy在最近进行了大更新,可以用。在kali2019.4的版本中将其移除了,可能是观察它过去的时间里没有更新,没想到近期出现了大更新。
- 尝试使用wiki,访问官网,推特看看是不是有最新的消息
https://en.wikipedia.org/wiki/OWASP_ZAP
options-local proxies
实战靶机:http://192.168.119.132/mutillidae/
右键-attack-spider
- 关注爬到的一些结果,复制URL用浏览器访问,看看是否涉及隐私
WordPress Vulnerability Scanning & Username Enumeration
用户名枚举
Load Balancer Scan负载均衡
HTTP或DNS负载均衡
使用kali自带的lbd工具检测是否存在负载均衡
- lbd www.baidu.com
XSS(Reflected, Stored & DOM)
OWASP Broken Web Applications Project(owaspbwa)靶机
bwapp 选择漏洞场景XSS-Reflected(GET)
<script>alert("hello sec875")</script>
XSS- Stored(blog)
OWASP WebGoat靶机
ajax security LAB:DOM型XSS
<script>alert("hello sec875")</script>
<img src="" onerror="alert("sec875")">
SecIN地址:https://www.sec-in.com
SecIN是启明星辰云众可信旗下信息安全技术社区。社区旨在建设高品质信息安全技术共享生态圈,让每一个信息安全爱好者及安全从业人员在这里自我发展、自我提升。
DirBuster
注意线程数和并发次数等设置的值,会影响到目标的性能造成拒绝服务的问题。
CSRF (Cross Site Request Forgery)
组合型漏洞:通常将跨站脚本攻击与请求伪造组合在一起。 xss rf
OWASP Juice Shop靶机
修改密码的地方
http://192.168.119.132/dvwa/vulnerabilities/csrf/?password_new=1234567&password_conf=1234567
验证请求伪造是否存在:删除变量,改变值,调试一下看看响应包的情况
跨站脚本攻击:再试试xss是否存在
<script>alert("hello sec875")</script>
利用xss的方式触发请求。URL的地方换成请求伪造的payload
自己再试一次,看看是否触发CSRF,如果成功了,说明该漏洞存在。URL的地址就是发送给受害者的payload,发送前可能会使用短连接等方式修饰一下。
How To Install OWASP Juice Shop
https://www.youtube.com/watch?v=tvNKp1QXV_8&list=PLBf0hzazHTGO3EpGAs718LvLsiMIv9dSC&index=13
- https://nodejs.org/en/download/package-manager/
- https://github.com/nodesource/distributions/blob/master/README.md
- https://github.com/bkimminich/juice-shop 靶机
- 先安装node.js版本10,再安装果汁店靶机环境,这个靶机被称为很复杂的系统建议本地安装,不要用docker的环境。
- https://mirror.tuna.tsinghua.edu.cn/help/nodesource/
# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs
node --version
我这里各种错误,速度还很慢,改用清华大学开源软件镜像站的方案
如果是 https://deb.nodesource.com/node_10.x/ ,则改为 https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_10.x/
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
apt-get install -y nodejs
node --version
- 下载liunx版本juice-shop(果汁店靶机)
tar zxvf juice-shop-10.3.0_node10_linux_x64.tgz -C ./
- 继续进入到解压后的文件夹中,使用npm start命令运行靶机
http://localhost:3000
关于metasploit2靶机的教学视频
namp
route -n
关于DVWA靶机的教学视频
https://www.youtube.com/watch?v=_c9eHetN6es&list=PLtShq-THkmvMSRm365rPuWDrLCWXd5uGf
https://www.youtube.com/watch?v=cwUrc7JL1hE&list=PLMcXv2jVcbgp4J7240jF3pxGh8LIsHdCU
关于果汁店的教学视频
https://www.youtube.com/watch?v=KmlwIwG7Kv4 hackone
https://www.youtube.com/watch?v=cj9gqqp07tk&list=PLelhKCa4OeJN56V4KF-CglBV15oS7MQUK
https://www.youtube.com/watch?v=XXkMY_VyJ-Y&list=PLV9O4rIovHhO1y8_78GZfMbH6oznyx2g2
OSCP。。
https://www.youtube.com/watch?v=t9b48M0RmZY&list=PLwki63kt7nLr3F8CYgK7V_ExcwkGFipl5&index=2
Cookie Collection & Reverse Engineering
cookie收集和json web token的逆向工程
https://www.youtube.com/watch?v=qtr0qtptYys&list=PLBf0hzazHTGO3EpGAs718LvLsiMIv9dSC&index=14
- 会话cookie 永久cookie 第三方cookie 第三方API带来的,例如使用flash会发现一些相关的cookie
cookie不是登陆以后得到的,而是进入网站,登陆或者注册,注销等任何动作,请求以后都可能会得到不同的cookie。它是记录你的活动与行为的一些会话值。而不是登陆值。
上下文知识寻找:我随便打开了一本PHP的书,翻到了cookie与session章节,粗暴的过了一遍。并运用了最简洁的笔记法。智慧结晶(也可以称为知识压缩为只言片语,或者脑图,只不过我没有用Xmind软件)
HTTP无状态 跟踪数据的两种方法:cookie,session 浏览器-工具-Internet属性-隐私-高级
意思就是说,如果不使用这些跟踪数据的方法,服务器的网站是不知道你浏览了什么网页,购物栏里放了什么东西,这个余额是哪个用户的。而且你每次进入网站,一切都得从头开始,毫无存档与记录。
比如你设置了自己博客的字体与颜色,网站后台需要开发出对应的编码才能记录你的个人数据,代码如下:
- setcookie(‘字体‘,$_POST[‘字体值‘]); setcookie(‘颜色‘,$_POST[‘颜色值‘]);
否则的话,你今天设置好了,明天再登录,一切归零。而且别人访问你的博客,后台也无法区分谁是谁。
浏览器-工具-Internet属性-隐私-高级 如果你在这个地方,设置了提示选项,那么你就能看见,发送cookie的名字与值。
通常所说的协议头httponly,其实就是setcookie()这个函数里面的设置值。
完整参数:setcookie(name, value, expiration, path, domain, secure, httponly)
可以设置这个httponly来防止使用JavaScript读取cookie,那么XSS攻击cookie自然就失效了。
cookie将数据保存在客户端(浏览器)。session将数据保存在服务器,功能也比cookie多一点。
进入到解压后的文件夹中,使用npm start开启靶机
右键-审查元素 存储
注册 sec875@sec875 123456 母亲的娘家姓:liqing
登陆以后 再次查看cookie 多了一个token值
复制web令牌: Json web token 身份验证令牌
- 阮一峰http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
- Json web token 编解码:https://jwt.io/ 注意缩写JWT
进入编解码网站以后,注意原始值的点号分割三段,第一段为头部分JWT以及字符串转换算法,第二段为json web token的有效载荷部分(payload),我们可以编辑token比如改一改ID值然后复制变化的原值到浏览器中,密码一看就是MD5哈希密文,直接使用MD5解密。我们关注token值里面的ID,email,name,password等字段信息,对它们进行篡改来进一步做渗透测试。如果你的电脑被别人在几秒钟内访问过,那这个token值就泄露了。
- MD5解密网站:https://www.md5online.org/ 或者 国内:https://www.cmd5.com/
HTTP Attributes (Cookie Stealing)
HTTP属性(Cookie窃取)
https://www.youtube.com/watch?v=8s3ChNKU85Q&list=PLBf0hzazHTGO3EpGAs718LvLsiMIv9dSC&index=15
- httponly
<<script>test</script>script>alert(document.cookie)<</script>/script>
<iframe src="javascript:alert(`xss`)">
OWASP Juice Shop - SQL Injection
https://www.youtube.com/watch?v=nH4r6xv-qGg&list=PLBf0hzazHTGO3EpGAs718LvLsiMIv9dSC&index=16
- 安装火狐cookie编辑器 扩展-搜索cookie
- 计分器 http://localhost:3000/#/score-board
- https://pwning.owasp-juice.shop/part2/sensitive-data-exposure.html#access-a-confidential-document
Access a confidential document机密文件
目录爆破
bonus payload第三方额外的有效载荷
bonus payload 第三方声音API接口的资源
DOM
视频
六、Broken Authentication不完整的身份验证
Reset the password of the Forgot Password mechanism with the truthful answer to security question.通过找回密码机制(策略与功能)中的安全问题来重置别人的密码
- 这与技术漏洞无关,属于社会工程学,doxing(鸡肉搜索),公共数据库与社交中寻找相关信息。比如安全问题中的宠物的名字?父母姓名?生日?出生地?初恋?等。得到安全问题的答案,进一步利用重置密码的机制。
Change someone password into slurmCl4ssic without using SQL Injection or Forgot Password.在不使用SQL注入或忘记密码的情况下改变某人的密码
- 简而言之,如果后台使用salt(加盐的哈希函数保存密码),彩虹表就废了,用不了。
- 检测方式可能与CSRF中的请求伪造步骤相似,因此大部分人会认为这是CSRF,抓包修改密码表单后的HTTP请求,尝试增删改每一个参数(这和CSRF中的探测是否有伪造的请求一样)。
- 只不过这里没有使用XSS的方式来触发这个伪造的请求,而是使用SQL注入进入某人的账户,提交伪造的请求,达到修改密码的目的。
- 这也会造成一些意想不到的潜在威胁,比如看似人畜无害的一些人,当你上个厕所的时候,直接来到你的电脑上,一秒钟提交请求,密码就变了。
Log in with some erased user account.使用某个已经被删除的账户登录网站
- 这里是检查根据用户本人的操作删除用户本人信息的功能。
- 可能通过SQL注入检测所有用户密码的列表,使用语法糖命令来查询设置为NOT NULL的账号,这只会返回在某个时间点被软删除的用户。
- 使用邮件地址为账号的方式登录,密码随意写。
Log in with some Gmail account without previously changing his password, applying SQL Injection, or hacking his Google account.登陆某人的谷歌账户而不需要更改密码,应用SQL注入或hacking他的谷歌账户
- 通用数据保护条例(GDPR):https://gdpr-info.eu/art-17-gdpr/ 没什么内容,类似各种权利保护声明
- 使用谷歌实现OAuth登陆,注册谷歌账户并开放授权(OAuth);类似于第三方便捷式授权登陆
- 检查js资源并搜索oauth,观察一个命名为userService.oauthLogin()的类似oauth第三方授权登陆的命名函数,注意保存和登陆的函数,设置密码的逻辑。比如翻转邮件地址,使用base64默认编码。
Exploit OAuth 2.0 to log in with the Chief Information Security Officer‘s user account.利用OAuth 2.0登陆首席信息安全官的用户账户
- 首席安全官(CISO)的密码是大强度的多元化的随机密码
- 尝试使用这种OAuth2.0的便利功能来完成攻击
- 使用自己的账户密码登陆勾选记住密码,顺利进去以后观察自己的cookie中邮箱账户的变化;注销并返回;使用CISO的账户与任意的错误密码登陆,发现即使登陆失败,cookie居然也被设置为CISO的邮箱地址,HTTP请求包中多了一个X-User-Email字段,内容也是CISO的邮箱。
- 这个时候就要猜测这个OAuth2.0带来的便利性快捷登陆的功能了,是不是直接看的是X-User-Email字段里面的内容,以此为准来直接快捷登陆的呢?你需要测试它,使用自己的账户再次登陆,看看字段值与其他邮件账户地址的值是不是CISO的还是你自己的。如果是别人的邮箱,那直接就进了别人的账户。到此为止,不要再测试他们第三方的账户并登陆谷歌应用中。
- 注意:国际与国内在未得到授权的情况下,登陆别人的谷歌以及其他任何第三方的账户,是犯罪行为。
Log in with the administrator‘s user credentials without previously changing them or applying SQL Injection.使用管理员的用户凭证登录,而不需要更改它们或应用SQL注入。
- 猜解密码(猜测密码的组合成分是否有部分关键词)
比如包含一个admin,前缀可以自己生成一个1-4位的大小写字母数字和特殊符,后缀同理
- 攻击哈希值
- 使用黑客工具进行通用密码字典爆破
注意:80%的人可能都会使用类似的密码习惯或在原有的密码基础上进行一些派生式的修改,比如将admin@123修改成为了admin@123456!,一般情况泄露了第一个密码,可能会接二连三的泄露后面很多的密码。除非这些密码都是相互独立的,字符串的差异性特别大。
Reset someone password via the Forgot Password mechanism with the truthful answer to his security question.重置某人的密码,通过忘记密码机制和他设置的安全问题的真实答案
- 先利用网络的资源了解一下那个人
- 翻阅一下问答环节的信息,发现那个人如实的回答了被提问的问题,而这些问题的答案又被他用来申请账号
- 从一开始接触的角度来看,这被理解为从互联网的公开信息中寻找有价值的信息;从信息收集与整理来说,这可能会引发python提取数据的进一步思考,可能被用于工程化。其实已经存在工具和平台做这一块的服务了
- 通过wiki等平台阅读他们的个人信息,传记,履历等,对比他设置的安全问题的答案有没有在这里面得到
- 如果在网上由于历史原因导致个人信息严重泄露,你有两个选择,如施瓦辛格一般坦然面对自己的黑暗历史;如曹丕一般,把这一摊水给搅浑,让别人产生多种质疑,咬死不认。
Reset the password of someone internal account via the Forgot Password mechanism with the truthful answer to his security question.通过忘记密码机制重置某人的内部账户密码,并如实回答他的安全问题。
- 聪明的人已经意识到了账号安全的问题,他们在设置账号与内部账号等问题上都没那么粗心,相应的他们甚至清楚从攻击者的角度可能会从什么方面入手进行某种攻击。
- 安全问题的答案在设置的时候,他已经考虑到自己可能泄露了很多的信息在网络上,设置答案时,思维一转变。让攻击者更难得到这个答案。比如,您母校的名字是?你想设置答案为史莱克学院时,突然思维一变,大隐隐于市,设置为shi史莱克学院shi,答案还是真实的,但经过了变种与变体。
- 这取决于你猜解的空间与命中答案的运气成分,从只能破解这个问题的途径来说。
- 学习数学的概率,排列组合等知识可以让你明白,这些爆破的背后需要付出多少的时间成本,思考值不值得的问题。信息安全不是单学科的专业,相比学专业来说,兴趣是最重要的。也就是说,当你学到某个东西而开心时,你可以马上丢掉手里任何的事情,抓住这个开心的机遇来思考开心的问题。思考不出来只会让你在今后更加专注于各学科之间的精妙融合运用,感受到很多问题的答案可以初步的通过弥补信息差来解决掉。也就是所谓的书破百卷,其意自现。
未完,只是部分1。后面的视频星球最先看,然后延期一个礼拜再发B站,目的是让那些小朋友们也有一个观看的机会。
从B站的第17个实战视频开始,后面的视频优先发布在知识星球:攻防对抗姿势
主要是前面B站上的视频太啰嗦了,比较随意。最近的视频唠嗑环境很少,较为精简放星球上。
支持的人越多,创造的人就越多,我们学习的环境就越好。 请sec哥哥喝奶茶:)