2 第二天【2023/12/31】
一:学习部分
-
网站搭建
-
开发语言:asp、php、aspx、jsp、Java、Python、Ruby、GO、HTML、JavaScript等
-
程序源码:根据开发语言分类、应用类型分类、开源CMS分类、开发框架分类
网站可能使用到了开发框架,目前在个人学习中,大多数网站搭建都是使用框架进行搭建的。
大多数漏洞都是开发程序的时候,源码写的有问题而产生的漏洞。
-
中间件容器:IIS、Apach、Nginx、Tomcat、Weblogic、Jboos、glassfish等
-
数据库:Access、Mysql、Mssql、Oracle、db2、Sybase、Redis、MongoDB等
-
服务器操作系统:Windows、linux、MAC
-
第三方软件:phpmyadmin、vs-ftpd、VNC、ELK、Openssh等
用第三方软件可能更好的管理控制服务器
-
-
通常服务器搭建的时候,需要自己搭建各种各样的环境与配置,非常的麻烦。
所以可以使用服务器管理软件来进行快捷的部署与搭建。
也可以用作服务器运维。
-
WEB应用安全漏洞分类
- SQL注入、文件安全、RCE 执行、XSS跨站、CSRF/SSRF/CRLF、反序列化、逻辑越权、未授权访问、XXE/XML、弱口令安全等。
-
浏览器的F12界面——Network页面
-
这个页面用来抓取数据包
- 如当在网页中点击了某些按钮,或者是触发了某些请求,与服务器发生通信之后,就会在Network界面出现抓取的数据。
-
在抓取的数据包中,User-Agent属性代表的是浏览器的版本。
这个也就是常常说的UA头,可以用来标识一些基本信息,比如浏览器版本;当使用PC端浏览器与安卓端浏览器访问的时候,UA头也会存在区别。
-
-
新浪新闻投票案例
-
在投票这一请求中,可以通过抓取请求包,然后重新使用其他发送请求的软件重新模拟进行重发请求,从而实现反复的投票。
原因可能是对于投票的限制,仅仅是对前端的一个验证,没有更深层次的验证方法。
-
-
Burp Suite
一个常见的WEB抓包工具,这是一个代理工具。
浏览器在未设置代理的情况下,直接访问的是服务器;
可以通过设置代理,将浏览器的请求转发给代理,代理通过中间处理,然后在处理之后转发给服务器。
而Burp Suite正就是这样的一个代理软件,可以作为中间的处理工具,对途径的请求包和返回包进行修改。
-
实现不同的UA界面通用访问的效果
由于存在PC端和Android端等端的不同访问,需要做到实现在PC端能访问到Android的UA界面
可以通过Burp Suite软件,对PC端请求的数据包进行拦截,将PC端发起的请求修改为Andorid端发起的请求,这样服务器收到的请求就是Android端样式的请求包,返回的结果也就是针对于安卓端的前端样式。
替换PC端的请求可以通过修改整个数据包的方法,也可以仅修改UA属性,这样都能够实现最终的效果。
需要注意的是,替换不只是一次替换,可能会需要面临替换多次的数据包,具体原因暂时没有了解,猜测可能是因为由于TCP连接的时候存在三次握手,所以会发送多次数据包,对于每次的数据包都需要做出修改。
当然这也引发了另一个问题,我们不知道服务器是通过那些方式来判断访问者是PC端还是Android端,常规的可能就是根据UA头来判断访问者的类型,但是并不排除服务器采取多种手段来验证访问者的类型,具体的验证手段也是未知的,这就意味着我们仅通过替换UA属性的方法并不一定能成功,需要完全对应匹配的话还是得使用一个Android设备或者模拟器来对服务器发起请求,然后截获这些数据包并将其替换至PC浏览器中。实际上,也存在有PC端的浏览器,通过某些插件或者是自身的一些功能,能将模拟成Android的设备。
在Android设备中,使用过的一些浏览器基本都已经支持切换UA的功能。
-
HTTP请求状态值
3XX通常表示跳转 处置过程
5XX 内部错误、服务器问题
-
对于文件
- 200存在
- 404不存在
-
对于文件夹
- 403存在(403 Forbidden)
- 404不存在
-
通常使用软件进行扫描的时候,会将3XX和5XX列入查询结果
-
虽然3XX和5XX无法直接判断是否存在对应文件,但是存在继续深入分析的可能
分析下面这样一种情况
一个服务器存在的一个文件是:/user1/upload/2023/12/test.txt
当扫描该服务器的请求是
GET /user1/upload/2023/12
的时候,返回的结果是301 Moved Permanently但是将扫描时候的请求换成
GET /user1/upload/2023/12/
的时候,返回的结果是403 Forbidden可以分析知道,前边的请求无法判断文件的存在与否,但是可以通过加一个
/
,进一步得到403的状态值结果,泽可以知道代表文件存在。或许还会提出这样一个疑问:
我判断了前面的一部分文件目录结构,但是进一步的,我怎么知道该请求的路径是
/user/upload/2023/12/
?为什么不会是/user1/upload/2023/11/
?我该怎么去进一步判断呢?这个问题是合理的,但是Burp Suite工具可以有相应的手段,虽然没法直接判断进一步的文件名称,但是工具可以提供遍历的方式,提供可能的文件名称的遍历:
- 进入
Intruder
-1【可能是其他页签】
-Positions
,设置请求头为/user1/upload/2023/1/
,然后用鼠标光标选中请求头最后边的1,点击Burp Suite工具右边栏的Add 【特殊符号】
; - 然后进入
Payload
,设置Payload的范围,将Payload type设置为Numbers,再设置From和to也就是推测的最有可能的取值范围。比如from 和to分别设置为1 12,step设置为1。 - 设置完之后,点击工具左上角的
Intruder
-Start Attack
,就可以查看每个遍历的结果。
通过这种方式,工具会依次遍历
/user1/upload/2023/1/
、/user1/upload/2023/2/
、…、/user1/upload/2023/12/
这些请求。 - 进入
-
-
-
IP代理
演示上使用到的是快代理。
配置后,可以将服务器的IP地址进行转换。
转换有什么作用呢?
比如当攻击者的IP地址被目标服务器拉黑了之后,通过使用代理,每一次服务器的IP都会变化,在演示中,攻击者的IP地址就能以每秒钟变化5次的速度进行变化。这样的话,目标服务器就很难通过封禁IP的方式来做到防护。
二:思考待完成部分
-
网站框架中CMS是什么
指的通常是在搭建服务器的时候,通常在部署的时候,会用到的各种工具软件。
-
Burp Suite软件的使用
模拟对新浪新闻的点赞请求。
-
实现PC端对不同UA的配置
-
实现浏览器的代理配置
重点在于谷歌浏览器的代理配置
-
Sock主机是什么
-
已知可以实现了对模拟器Android设备的数据捕获,试对自己的真实Android设备的数据进行捕获。
目前的大致思路如下:
- 将PC与待捕获数据的真实Android设备置于同一局域网下;
- 给Android设备配置代理,代理的地址是PC的局域网地址;
- 用Burp Suite对PC在局域网中的地址进行监听;
-
IP代理的一些疑问
-
如果给自己的服务器配置了IP代理之后,那原本服务器的IP地址还能进行访问吗?
假如我的服务器的公网IP是
33.33.33.33
,如果我配置了代理,我的服务器的地址不断的发生变化,此时我用原本的IP,也就是33.33.33.33
去访问我的服务器还能正常访问吗?未证实猜测
应该是能的吧,考虑的下面的域名问题的存在,猜测原本的IP应该是同样能使用的。
同样的,如果我原本服务器的域名是www.test.com,那我设置了IP代理之后,还能不能使用这个域名进行访问?
未证实猜测:
应该是能,并且原本域名与原本IP的绑定没有变化,相当于原本服务器的功能并没有缺失,只是多了代理服务器的这样一个出口。
如果域名对应的IP地址被不断的变换,虽然现在还不清楚域名和IP规则,但是要实现一个域名和不同IP进行高频率的绑定替换,应该是不太可能,DNS服务器应该也不会允许这种变化如此之快的请求。
-
比如快代理的实现原理是什么?为什么能将服务器的IP地址不断的进行变化?
未证实猜测:
首先不考虑域名的问题,如果只是单纯的查看自己设置了代理的服务器的IP不断的变化的话,猜测是将服务器的外部访问代理设置成了快代理的服务器,然后这样每次自己的服务器每次访问外部网络的时候,都会将数据发送给快代理的服务器,然后快代理的服务器作为出口,发送给目标服务器。
由于快代理存在多个服务器,遍布各地,因此发送给目标服务器的时候就会被检测为不同的IP地址。
-