小迪安全学习
Day 1DNS:域名ip解析协议
域名
www.baidu.com www是一级域名
tieba.baidu.com tieba是二级域名
shehui.tieba.baidu.com shehui是三级域名
本地host文件
可以重定向解析,优先级高于dns
加速器就是通过修改host文件做到重定向,使其访问国内的缓存而非国外
CDN 缓存节点技术 一般无法获取真正的主机ip
绕CDN
Day3有时访问域名和IP到达的是不同文件夹
使用御剑扫描时
ip地址访问可以发现更多内容,而域名访问只能发现一个文件夹下的所有文件
根据网站中间件解析协议的不同,对不同后缀名的文件做出不同的反应,或解析或不解析,或直接下载,或报错
例如
自定义一个可执行文件xiaodi8,为他添加asp的脚本文件路径后使其夺舍asp
xiaodi8解析不了是因为没有脚本文件 这里已经给它添加了asp.dll的路径 所以会按照asp脚本格式运行
装IIS时,会自动创建一个来宾用户
当lls采取匿名访问的策略,我们访问网页时,以来宾用户身份访问服务器上的文件
服务端可以自定义来宾用户的权限,这也是防护端用的一种技 ...
ctfhub
HTTP协议请求方式HTTP Method is GET
Use CTF**B Method, I will give you flag.
Hint: If you got 「HTTP Method Not Allowed」 Error, you should request index.php.
利用bp改包,将GET换成CTFHUB
302跳转
302用来做临时跳转302 表示临时性重定向,访问一个Url时,被重定向到另一个url上。
302常用于页面跳转,比如未登陆的用户访问用户中心,则重定向到登录页面,访问404页面会重新定向到首页。
301适合永久重定向301比较常用的场景是使用域名跳转。
比如,我们访问 http://www.baidu.com 会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。
注意: 301请求是可以缓存的, 即通过看status code,可以发现后面写着from cache。 或者你把你的网页的名称从php修改为了html,这个过程 ...
c++学习2
图的三种存储方式邻接表稀疏图
12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#define MAXN 1005;using namespace std;struct edge{ int to,cost;};int n,m;vector <edge> p[MAXN];int v[MAXN][MAXN];int main(){ cin>>n>>m; for(int i=1;i<m;i++) { int u,v,l; cin>>u>>v>>l; p[u].push_back(edge{v,l}) }//p[v].push_back(edge{u,l});当是无向图在加一条边 //把邻接表转换为邻接矩阵 //p[u].size() 代表第u个点几条边 p[u].cle ...
c++学习3数据结构
指针123int a=10;int* p=&a;int *p=&a;
下两行的效果是一样的
123int a=10;int *p;p=&a;//我更喜欢这种写法,避免在我摆烂一段时间后看不懂
假设p=2002
p+1等于2006
一个int型占四个字节,一个字节为1b,最近在学汇编,感觉知识都串通起来了
指针类型、算术运算、void指针
将1025转换成二进制并当作char型输出了,char占一字节,所以输出了最右边的2*1的零次方
p0+1指向的地址的值是4,00000100的值为4
void通用指针
void *p1;
p1=p;
有点类似拷贝文件要找到文件的地址,而不是只拷贝快捷方式
指针和数组
将p+1,由于数组的地址是连续的,在对p进行解引用,就能到达下一个数
这两种操作都能得到ai的地址
a[i]和 *a[i+1]
对a本身自增的操作非法
vector动态数组(1)vector a 定义一个int类型的vector一维数组。
(2)vector a(10) 定义一个int类型的长度为十的vector一维数组。
(3 ...
burp
配置环境
然后用谷歌浏览器的插件switchy插件切换代理端口
用Burp Suite 爆破web密码
准备发包,开启监听
确定爆破字段
右键包发送至 intruder
选择攻击模式
Payloud Set 攻击模式
设置字典
以length区分不同,并查看详情寻找welcome
攻击模式介绍
Sniper:用于只爆破一个字段Batter ram:用相同的值(字典)测试多个字段
例如: 尝试1尝试2.。。。
username aaa ttt
paseword aaa ttt
Pitchfork:分别以不同的字典测试相应的字段 使用场景:假设搞到了一个数据库,验证其用户名和密码能否匹配
例如: username aaa rrr
paseword 123 111
Cluster bomb:贼nb,交叉验证,暴力枚举若有10个用户名10个密码至少会发生10*10次请求,先把第一个用户名固定住,试完十个密码,再换用第二个用户名,以此类推
密码破解工具:hydre 九头蛇密码破解
Proxy模块
Http hestory介绍
...
b站逆向视频
ex可以发现
是否加壳以及壳的版本
关于upx壳,有1.几,2.几,3.几三个大版本,用upxshell中的各个版本能脱掉大部分未魔改的壳
743232780我存这个数干啥来着
忘记了。。
第一部分TEA加密算法
早期腾讯使用,现在腾讯大多使用XTEA
特征常熟:
0x9e3779b5
算了还是做题吧,这视频讲的有点乱
JNZ - 如果 ZF 标志不为零 (1)
CMP - 如果两个值相等,
cmp相当于减法指令只是不保存结果
如果(ax)=(bx),则(ax)-(bx)=0,所以:zf=1;
如果(ax)≠(bx),则(ax)-(bx)≠0,所以:zf=0;
如果(ax)<(bx),则(ax)-(bx)将产生借位,,所以:cf=1;
如果(ax)≥(bx),则(ax)-(bx)不必借位,所以:cf=0;
如果(ax)>(bx),则(ax)-(bx)既不必借位,结果又不为0,所以:cf=0并且zf=0;
如果(ax)≤(bx),则(ax)-(bx)既可能借位,结果可能为0,所以:cf ...
c++学习1入门与初级算法
不设标题了学的比较杂
输出字符菱形题目描述用 * 构造一个对角线长 $5$ 个字符,倾斜放置的菱形。
输入格式没有输入要求。
输出格式如样例所示。用 * 构成的菱形。
样例 #1样例输入 #11
样例输出 #112345 * ******** *** *
12345678910111213141516171819202122232425262728293031#include<iostream>#include<stdio.h>using namespace std;int main(){ int n=3; for(int i=1;i<=n;i++) { for(int j=1;j<=n-i;j++) { cout<<" "; } for(int m=1;m<=2*i-1;m++) { cout<<"*"; } cout<<endl; } for(int i=n-1;i& ...