CISP-PTE自考经验总结_2022-11-09
报培训班会在考试中会碰到原题,但不报班自考的话在搜集资料和总结知识点上将会耗费不少时间,而且会伴随着持续的不踏实和不稳妥。这篇文章记录了本人自学备考,成功通过的整个过程,希望对你有用。
备考规划及注意事项考虑到零基础培训班7天就能速成,因此自考不报培训班,有基础的话同样一周,一天练习三个小时左右即可。主要通过练习各种Labs和公网上的模拟真题靶场,对必考知识点总结。
考试方式:机考,机器不能联网,使用给定的攻击机,工具少且老,够且仅够用。
熟悉题型:20个选择题(20分)+5个实操题(50分)+1个综合题(30分)
20个选择题考察面很广,几乎涵盖了知识体系大纲的所有知识点,多练习总结错题即可。
5个实操题每题一个key,题型及考察点:
SQL注入:报错、二次等,双写或space2comment绕过,load_file读key
命令执行:ping执行,读取文件关键字替换、加无效字符绕过
代码执行:php代码执行,闭合函数等操作,system函数读key
文件包含:php伪协议,通常双写绕过,包含key读取base64内容
文件上传:php马子,GIF89a文件头、其他后缀绕过
权限绕 ...
绕waf之分块传输技术
分块传输理论知识分块传输绕waf技术已经公开好几年,学习后作此总结。
HTTP/1.1中引入了分块传输编码的数据传输机制,允许客户端将请求体分块再传输,这得益于HTTP/1.1的长连接机制,分块传输的本意是为了提高效率,如将数据分块后再传输可以对每个数据块单独操作(如压缩解压缩、计算、整合等),而不需要等所有数据发送或接收完毕后再操作,大大节约时间空间成本。
分块传输的数据格式:
请求响应头不需要指定Content-Length,但是需要加入Transfer-Encoding: chunked来表明本数据包使用分块传输;
同时数据体分割为一系列数据块,每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括自己的结尾(rn),也不包括分块数据结尾的;
最后一个分块长度值必须为 0,对应的分块数据没有内容(两个空行),表示实体结束。
123456789Transfer-Encoding: chunked4abcd3abc0
同时也可以在长度后加入注释内容,使用分号来表示注释开始
123456789Transfer-Encoding: chunked4 ...
Python3使用requests模块发送FormData文件类型请求
多次脚本编写过程中,遇到请求体是FormData文件类型的请求,对如何使用Python3的requests模块来发送该类型请求,做简单记录。
假设需要发送如下的请求数据:
有三种方法
手动构造requests.post请求体传参
使用requests.post的files参数
使用requests_toolbelt的MultipartEncoder模块
但首先得了解一下文件格式multipart/form-data的请求包。
multipart/form-data格式简述post请求中必须有Content-Type请求头,用于表示本次post数据的格式,基于post请求方式发送数据的有多种格式,用于不同的环境:
application/x-www-form-urlencoded:原生post,键值对,简单的请求数据
1234POST /test.html HTTP/1.1Content-Type: application/x-www-form-urlencodeduser=admin&pass=123456
application ...
踩坑记录之使用云函数隐藏C2地址
踩坑记录之使用云函数隐藏C2地址云函数隐藏C2地址的部署过程跟网络上大同小异,参考的以下文章进行部署,环境为CS4.2:
https://blog.csdn.net/w1590191166/article/details/113826579
https://www.cnblogs.com/SeanGyy/p/15614445.html
本文只记录在部署过程中遇到的问题。
坑点总结部署过程中的2个踩坑分别是
python3.7默认没安装requests库
直接pip3 install requests安装库不生效,需要指定保存位置
均已解决
部署过程坑点1:python3.7默认未安装requests库坑点:部署前没有测试,不知道python3.7默认没安装requests库
使用的代码:
1234567891011121314151617181920212223242526272829# coding: utf8import json,requests,base64def main_handler(event, context): response = { ...
【工具篇】EgressIpQuery - 出口IP查询工具
👁🗨EgressIpQuery - 主机出口IP查询工具可在攻击前或配置全局代理后使用该工具检测出口IP,避免在攻击中因代理未生效而被溯源的问题。
Github:https://github.com/sma11new/EgressIpQuery
🔨工具介绍🍜工具特点
图形化方便操作和展示
支持自定义查询接口、代理
同时查询出口IP归属
没有第三方依赖
🍝java版本项目使用jdk8编写
🍻使用说明直接查询,使用的工具自带接口
也可以自定义查询接口,当主动修改接口后,会在同目录下生成EIQconfig.list接口配置文件,恢复默认接口后,会自动删除该配置文件。
⭕遗留问题配置代理后,再次点开配置界面,代理类型会重置为socks,如果是http则需要再次选择。
🐎代码分析工具实现非常简单,我甚至能想到用Python怎样在不到100行写出一个又健壮又好用的同样功能的工具,不过这是第一个较为完整的Java工具项目,功能简单,主要用于熟悉Java项目流程,收获不小。
🏭项目结构开始使用maven管理项目,但是配置和打包重复出现问题,而且功能较简单,索性不用了,下个项目再好 ...
【Java学习之路】SE3 - static修饰符
基本用法静态成员变量、方法static修饰的成员变量为静态成员变量,在内存中只存储一份,可以被共享修改、操作,属于类,随类产生,类加载时被初始化。
成员变量分为静态成员变量和示例成员变量:
静态成员变量:有static修饰,属于类,可使用Class.Name(推荐) 或 Project.Name(不推荐)访问,常用表示在线人数等需要共享的信息
实例成员变量:无static修饰,存在每个对象中,使用 Project.Name访问,常表示年龄、姓名等属于每个对象的信息
静态成员方法与静态成员变量一样,使用场景如下:
静态成员方法:实现一个通用的功能,比如登录
示例成员方法:表示对象自己的行为,如添加好友、吃饭、睡觉
静态成员变量内存图:
静态成员方法内存图:
示例:
1234567891011121314public class User { // 在线人数,静态成员变量 public static int onlineNumber; // 静态成员方法 public static void login(){ Syste ...
【Java学习之路】SE2 - 面向对象基础知识
构造器和this关键字构造器Java类中自带构造器,实际是一个类同名的方法,默认参数为空,想指定参数需要重写。
Java构造器类似Python的构造函数,都是在初始化类时调用,不同的是Java可以同时存在有参和无参两个构造器。
指定参数后想再次使用无参构造器,需要声明一个无参的。
this关键字this关键字代表当前对象本身的地址,类似于Python的self:
Java:this.name
Python:self.name
示例Person类
12345678910111213141516public class Person { String name; double age; // 无参构造器,默认存在 public Person(){ System.out.println("!无参构造器"); } // 有参构造器,需自定义 public Person(String name, double age){ this.name = name; ...
【Java学习之路】SE1 - 基本概念及语法
基础概念JDK、JRE关系总:JDK包含JRE、JRE包含JVM
JDK(Java Development Kitchen):Java开发工具,包括java编译器、java虚拟机、java类库等java开发运行所需的所有东西
JRE(Java Runtime Environment):Java运行环境,包含java虚拟机JVM和java类库
JVM(Java Virtual Machine):Java虚拟机,跨平台支持基础,真正运行java程序的地方
结:
1、安装JDK即表示安装了Java开发运行所需的所有环境
2、如果是企业部署情况下,可能不需要开发环境,因此只需安装JRE能够至此java项目运行即可
java程序运行过程总:javac将.java文件编译成.class文件,java运行.class文件
安装好的JDK中包含一个java.exe和javac.exe,javac.exe用于将.java文件编译成跨平台的.class文件,java.exe将.class文件转换为机器码并执行。
简单的java程序,HelloWorld.java:
12345public class He ...
【工具篇】webEye - web资产探测工具
webEye工具专项于ip对应web资产探测,可用于红队信息搜集、蓝队内网web资产探测梳理。
🎁更新日志2021-10-10 (v2.1):
因效果不佳,删除ICP备案查询功能
优化数据输入输出,加入解析多种ip和port格式,增加支持-p/–ip参数直接输入目标ip/ip段
修改写入文件方式为分段式,减少资源占用
加入任务进度显示,更加直观
修复已知问题
2021-08-08 (v2.0):
修改项目名为webEye
加入ICP备案查询
2021-02-13 (v1.0):
创建项目GetWebSiteTitle
可读取文件ip列表进行简单的web资产探测
🏓功能简述webEye工具专项于ip对应web资产探测,可用于红队信息搜集、蓝队内网web资产探测梳理,目前功能及要点:
批量IP的多个端口上Web存活检测
获取存活web站点标题
获取指定多个响应码的web资产
使用线程池增加请求速度
查询结果输出至Excel表格
开发环境:Python 3.7、Win10
🍉安装&&说明安装工具下载项目
1git clone https:/ ...
【工具篇】ip2domain - 批量ip反查域名及备案信息工具
🎯简述ip2domain是一款自写的批量ip反查域名及备案信息工具,在批量挖SRC时,通常会用较新的漏洞POC批量跑fofa或其他空间测绘的相关资产ip,该工具可用于对跑到的ip批量反查域名及备案信息,快速确定ip所属企业,方便提交漏洞。
📢说明该工具是在之前的webEye上改进而来,由于webEye是检测IP端口站点存活后在页面匹配ICP号查询备案信息,准确率较低,因此改进为调用接口查询。
功能特点如下:
快速批量查询备案信息;
结果导出至Excel表格;
使用多线程加快速度;
代码中对域名做提取主域和已查询标记,同一域名仅查询并输出一次。
注意:
当反查域名列出现”– Connect Failed –”时表示反查域名接口请求出错
当单位名称列出现”– Connect Failed –”时表示备案信息接口请求出错
出现以上问题极有可能是请求频率过高,但由于是调用api而不是模拟浏览器请求,因此出现的概率极小。
🚩使用安装依赖:
1pip install -r requirements.txt
使用:
12345678usage: ip2domain.py [-h] -f ...