CTF-web-014
【BUUCTF】[GXYCTF2019]Ping Ping Ping Writeup资料来源于这个博客
理论基础命令联合执行URL编码:一种百分号和数字字母的组合形式,类似于:%0a.
; 前面的执行完执行后面的| 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果) || 当前面的执行出错时(为假)执行后面的& 将任务置于后台执行&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真url编码%0a (换行)%0d (回车)
绕过空格起因:在URL当中的普通输入的空格被过滤导致命令无法执行,需寻找替代品IFS: Linux内置环境变量${IFS}$9{IFS}$IFS${IFS}$IFS$1 //$1改成$加其他数字貌似都行IFS< <> {cat,flag.php} //用逗号实现了空格功能,需要用{}括起来%20 (space)%09 (tab)X=$ ...
SEC-2022版-0008-php开发-01-文件读取/下载/删除/写入/SESSION/COOKIE/验证码
根据源代码对应的功能猜测具体漏洞。解决不了的问题–学会放弃,毕竟WAF不是能随便绕的。
PHP开发-分页读取文件条目知识点:1、PHP入门-语法&提交等2、MYSQL入门-数据库操作3、HTML+CSS入门-样式编排
安全向:SQL注入。=>通过功能去找注入点。
实现功能:前端文章导航,点入内容显示,更改ID显示不同内容
前台显示文章,后台添加文章。
文章阅读,留言板,会员中心,模板风格引入……登录验证,文章增删改查,配置修改……php代码和html代码混编执行。
实现步骤:php配置文件有:index.php,news.php,conn.php
index:主页文件news:新闻模块conn:数据库连接文件
index.php
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content=&quo ...
Docker学习-001-概述/安裝
跟着狂神学Docker!
Docker概述开发即运维。(别问我,复杂又费力)
基本概念Docker:将一个项目带上环境进行统一打包,称为镜像。
Docker开发与传统开发的区别&核心与本质
传统:开发做jar,运维负责将jar部署上线维护什么的。jar部署的环境什么的都由运维去解决。现在:开发打包部署上线,一条龙服务(高级开发)– 只有一个人负责,没分开发和运维。java – apk – 发布(应用商店) – 张三使用apk — 安装即用java – jar(环境)— 打包项目带上环境 — 发布到Docker仓库(商店)—下载我们发布的镜像–直接运行即可
说白了,Docker能力强大,把开发和运维全干了,合成了一块儿。
Docker核心思想 :打包装箱,每个箱子之间互相隔离。(隔离机制,能压榨空间)本质 :所有的技术因为出现了一些问题,我们需要去解决,才去学习。
Docker历史2010年,几个搞IT的年轻人,在美国成立了一家公司 DOTCLOUD 提供 PASS云计算服务,LXC有关的容器技术。他们将自己的容器化技术进行统一的简化命名:DockerDocker刚诞生 ...
SEC-2022版-0007-小程序/APP安全-红队工具
小程序及APP安全概述
小程序/APP安全-内/外安全内安全个人理解:源代码本地调试,属于白盒测试的一类。
APP/安卓源码安全大体测试步骤如下:
源代码提取
功能逻辑与源代分析出关键信息
抓取关键信息资产,例如ICO,MD5值
借助黑暗引擎对资产信息进行二次搜索,例如使用ICO进行搜索,查出相关网络站点。
找到站点信息,结合源码进行安全测试
总结:反编译出源代码,对源代码进行代码审计,获取重要资产信息,包括RES等。
相关工具及功能:
app内在提取-AppInfoScanner反编译出源代码,在源代码中寻找漏洞,信息收集采集。对源代码进行分析。
查壳工具:ApkScan-PKID如果有壳存在,需要脱壳后再进行扫描。使用Xp框架(安卓逆向)去壳如果安卓软件找不到apk安卓包==> apk提取工具(提取方式多种多样)
资源提取类别:安装包&资源文件安装包,图片,xml配置文件等
外安全个人理解:黑盒测试,无法看到源代码,但可以使用抓包调试进行分析
调用工具:使用茶杯、BP、FD等结合使用,结合手机模拟器进行抓包调试。==> 抓包调试属于Web网站测 ...
SEC-2022版-0006-防护手段识别(CDN/WAF/负载均衡)-CDN原理/绕过
防护手段识别(CDN/WAF/负载均衡)-CDN原理/绕过
防护信息收集-厂商防护/WAF/系统防护获取网络信息-服务厂商&网络架构服务厂商:
国内大厂商:腾讯云,阿里云等。服务器环境:厂商机房,或者自购的服务器及搭建机房。大部分是租用服务器的。目的: 借此了解到目标的 防护等级,拦截的尺度,知晓测试的难度 。厂商自己的防护会自动帮助部署在其上面的服务器进行保护。防护过高直接跑路。
网络架构:
传统:C/S结构,即客户端-服务器
三层架构:客户端,应用服务器,数据库服务器
MVC架构:通过MVC这种架构将应用程序分成模型(Model)、视图(View)和控制器(Controller)三个部分,实现了业务逻辑层、表示层和数据源区分。
SOA架构:这种架构将应用程序看作一系列可重用的服务,利用服务调用和消息传递等机制进行通信与整合。
获取服务信息-应用协议&内网资产网站IP地址映射:从外网IP映射到内网IP,也就是将外网的访问流量移交到内网的指定IP上。外网的扫描:扫描的对象时外网的接口,而不是内网。探针到外网IP地址,实际上提供服务的是内网IP地址。
应用协议: ...
SEC-2022版-0005-[源码识别/获取-黑白盒-端口扫描-资产识别]
信息收集
知识点:1、打点-Web架构-语言&中间件&数据库&系统等2、打点-Web源码-CMS开源&闭源售卖&自主研发等3、打点-Web源码获取-泄露安全&资源监控&其他等4、打点-Web域名-子域名&相似域名&反查域名&旁注等
CMS源码★★★分类及概念源码分类主要分为两大类: 开源代码和闭源代码 。
程序源码–获取有价值的源码类信息,追查出其他漏洞,弱口令等……资源监控:GitHub监控,gitee监控等,防止源码泄露到GitHub等资源平台去。
CMS渗透安全思路:
通过已知的CMS查对应的漏洞库。可以通过网站类型和应用区别和寻找CMS。后期攻击非常的重要,针对源码进行测试和漏洞的挖掘。通过插件获取CMS通过源码泄露(备份文件,配置文件)获取CMS或者 未知的CMS/内部源码
黑盒测试和白盒测试黑盒测试:没有源代码,对黑盒开放出来的功能进行测试白盒测试:有源代码,对源代码进行代码审计并且挖漏洞。
CMS源码收集获取途径从第二点开始是针对CMS识别不到的情况。例如灰色产业的。
直接识别:
云悉指 ...
SEC-2022版-0004-资产架构/站库分离/测试阻碍
集成化搭建网站站点:宝塔
➢资产架构-BT搭建&多站点&多插件&多应用等➢番外安全-Aliyun&域名解析&云服务器&个人等➢考虑阻碍-站库分离&部署防护&负载均衡&CDN等
资产架构:信息收集网站信息需要收集的内容,分析攻击的口子在下面的那些内容:
更多的端口服务/网站/协议服务 => 寻找对应的安全漏洞
信息收集就是收集突破口,明白哪些可以测试那些不可以测试(后面学漏洞就知道了)
收集完成后必须明白:哪些漏洞存在,哪些漏洞不存在,要面对的是哪些漏洞 => 利用漏洞
WEB单个源码指向安全一套源码一个网站,没有更多的网站作为突破口。
一站两程序/源码类型安全测试角度:两个目标,代表可以测试的目标有两个,任意一个有漏洞都是会互相影响的。
目录型-WEB多个目录源码安全服务器的一个域名网站下的另外一个目录的网站:两套网站/两套程序任意一套遇到漏洞都可以进行安全测试
端口型-WEB多个端口源码安全服务器一套网站两个端口/两套程序
服务器架设多个站点安全服务器两个域名对应一个IP地址/一个服务器 ...
SEC-2022版-0003-抓包/封包/代理&加密解密
抓包/封包/代理抓包分两类,一类是web协议抓包,一种是TCP、UDP等的协议抓包。web协议抓包比较常用,比如修改数据包数据什么的。
基础抓包➢WEB应用站点操作数据抓包 - 浏览器审查查看元素网络监听
抓包功能不一定要依靠抓包软件,浏览器自身也携带了可以抓包的工具。各个浏览器:F12打开,点击Network/网络 -> 叫法不同,功能相同。可以抓Web协议的数据包。
各个软件抓包-代理抓包➢APP&小程序&PC抓包HTTP/S数据 -> Charles&Fiddler&Burpsuite➢程序进程&网络接口&其他协议抓包 -> WireShark&科来网络分析系统➢通讯类应用封包分析发送接收 -> WPE四件套封包&科来网络分析系统WPE算外挂类抓包,抓散装动作数据包,能使得动作复位。
详细的查这篇本地文章:SEC学习2023版-0011 > 重点在包转发那边,转发到BP进行测试。
环境配置:1、安卓模拟器安装搭建逍遥,雷电,夜神等自行百度下载安装
2、工具相关证书安装指南(SEC学习20 ...
CTF-web-013
题目源于bugku web
各种绕过哟解题<?phphighlight_file('flag.php');// 将id变量获取的值进行url解码$_GET['id'] = urldecode($_GET['id']);$flag = 'flag{xxxxxxxxxxxxxxxxxx}';// 变量存在验证if (isset($_GET['uname']) and isset($_POST['passwd'])) { // 两者不相等 if ($_GET['uname'] == $_POST['passwd']) print 'passwd can not be uname.'; // 两者散列算法相等 // 尝试使用相等sha1的参数,实验了半天都是false,尝试绕过:数组绕过 else if (sha1($_GET[ ...
CTF-web-012
题目源于bugku web
file_get_contents解题网址返回的内容如下
<?php// 将get参数获得的变量和值组成的数组 转换为php程序的变量和值extract($_GET);// 检查变量是否存在if (!empty($ac)){ // file_get_contents() 函数把整个文件读入一个字符串中。 // trim去除两端空格和特殊字符 $f = trim(file_get_contents($fn)); if ($ac === $f){ echo "<p>This is flag:" ." $flag</p>"; }else{ echo "<p>sorry!</p>"; }}?>// 总结起来,就是:// 1.读取文件内容为字符串,并且去除文件内容左右两边的空格// 2.本题需要传入$ac和$fn ...