Red的钓鱼网站

方法 要想制作一个钓鱼网站,就需要满足以下几点条件: 1)一个与原网站高度相似的html页面 2)一台能够与受害者主机有直接或间接联系的终端 虽然看着简单,但单要完成第一步可以说就已经让一些人够呛。所以,想要在Windows上用一般的方法来实现这一目的,显然是比较复杂的。所以Red便下意识地将目光转向了kali。好在kali集成了一款十分强大的工具setoolkit 下面就是我们今天的犯罪嫌疑人Red的操作步骤 在kali命令行中输入setoolkit,就可以打开这一工具。第一次打开需要输入y来进行工具依赖的安装 会出现以下内容 拉到下方,会出现如下内容 翻译后内容如下 社会工程学攻击 快速追踪测试 第三方模块 升级软件 升级配置 帮助 输入1 鱼叉式网络攻击 网页攻击 传染媒介式 建立payload和listener 邮件群发攻击 Arduino基础攻击 无线接入点攻击 二维码攻击 Powershell攻击 第三反方模块 输入2 Java applet攻击 Metasploit浏览器攻击 钓鱼网站攻击 标签钓鱼攻击 网站jacking攻击 多种网站攻击 全屏幕攻击 输入3 网站模板 站点克隆 用自己的网站 输入2,这里进行网站克隆,默认状态下对本地ip回车即可,将oj的登陆网站输入进来,等待捕获输入信息即可。这里用账号:admin,密码:IST22006来输入,可以看到如下内容 可以看到成功捕获,钓鱼网站制作成功~ 怎样让外网访问到? 这就需要用到一种技术:内网穿透 内网穿透的目的是:让外网能访问你本地的应用,例如在外网打开你本地http://127.0.0.1 指向的Web站点。 那怎么才能实现内网穿透呢?现有工具有花生壳,natapp,小米球工具,前两个都是收费的,最后一个生成的域名前缀是自己设置的,穿透域名是xx.ngrok.xiaomiqiu.cn.有兴趣的可以玩一下。

November 15, 2022 · 1 min · Red

PortSwigger篇:Blind SQL injection with conditional responses 带条件响应的SQL盲注靶场

本篇为小屋第一篇靶场日记,面向小白,步骤较为详细,Dalao们自行食用,也欢迎纠错 靶场简介 1 由题可得,这是一道经典的盲注题,大体思路也在Lab的Solution中有所提及,不过咱还是抱着打靶子的乐趣再写一遍试试 方法 试探 所谓漏洞,就是要进行尝试才能知道它是否真的存在。进入到如下页面后,随便点进一个“Pets”的标签页,就能看到我们今天的一号受害男主,也就是右上角的“Welcome Back!” 我们先对该页面进行一次拦截,并使用' and 1=1 --+ 语句来构造一次**一定成立的合法请求**,试看看他的Cookies能不能被我们利用 在原标签页面,我们可以清楚的看到我们的一号男主并没有消失,于是我们对其便继续进行试探,将请求变为不合法请求,再次进行尝试 很显然,我们的猜测是正确的,这里存在着一个可供我们进行注入的SQL漏洞,我们便可以开始对其进行’造娃’式的语句构造,来达到获取服务器密码数据的目的 猜测 既然已经知道存在SQL漏洞,也就是服务器可以执行我们所构造语句的漏洞,那我们就可以利用select命令对其进行查询,具体查询语句如下 ' AND (SELECT 'a' FROM users LIMIT 1)='a'--+ 这里我先对上述语句进行一下解释。Select是用来对后面From所指向的内容,也就是users进行查询。查询什么呢?就是查询我们在users表中是否存在这样一个字符a,如果成立,那么就会相当于users这个表在数据库中是存在,将会返回一个字符a那么就会和外面所构造的等式成立,所以就构成了一条合法的请求。而这里的关键也就在于where后的值是否成立。其中,Limit起到了限定字段的作用,也就是限制在第一个字段进行查询。 这里我并没有利用服务器自带的后面那个分号,而是将其使用--+注释掉并手动在a后添加了一个,这样比较美观,当然也是个人习惯,可以根据你的习惯来决定使用哪种方法 对上条构造完的请求进行释放后,可以在页面看到我们的一号男主角并没有消失。那么根据我们在试探阶段的经验就可以很容易推断出一条对接下来密码爆破十分重要的信息,在构造出的语句合法的情况下,一号男主角不会消失,反之就会 接下来,我们继续构造,对数据库中的其他信息进行更详细的查询。我们使用以下命令对users表中的内容进行判断 ' AND (SELECT 'a' FROM users WHERE username='administrator')='a'--+ 这句的作用可以类比到上面那句,作用就是更加地确定这个users表中存在一个叫做administrator的用户名 接着我们继续对这个表中的另一个字段password进行试探,当然,在题目中已经告诉我们这个字段的名字就是password,而在实战中则不一定是这个名字,所以这就需要我们对大众对数据库命名的习惯进行收集和分析,当然这都是后话。我们可以构造以下语句对密码的长度进行勘探 ' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a'--+ 在讲这句话进行释放后,我们可以在页面中看到我们的一号男主角并没有消失,利用length()函数对字段长度进行猜测的方法,可以一步步缩小我们的猜测范围,可以测试出我们的密码长度为20,猜测工作也基本到此为止,接下来便是对密码的直接爆破了。 爆破 我们可以使用substring()这个函数来挨个判断密码的每一位分别是什么,具体用法如下 ' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a'--+ 显然我们可以通过这种方式手动挨个地将密码的每一位给试出来。但显然如果没有比章鱼哥的手还多的键盘,估计试一早上都试不出来。不过好在Burpsuite内置了帮助我们进行爆破的自动化模块Intruder,我们只需要将数据包发送到这个模块就能对特定参数就行爆破 具体的配置界面如下,记得要将攻击模式改成Cluster bomb,才能对下面请求中的多个参数进行爆破 接下来进到上方的payload界面,对参数添加变量。这里我们可以将第一个参数的攻击类型改为Numbers,因为第一个变量的值范围是在1-20,所以我们可以将范围改为1到20,每次尝试的步长step设置为1 ![13](images/po rtswigger%E6%89%93%E9%9D%B6%E6%97%A5%E8%AE%B0%E4%B9%8B%E7%9B%B2%E6%B3%A8%E5%93%8D%E5%BA%94%20(13).png “13”) 第二个参数的攻击类型设置为simple list,点击下方**Add from list…**可以添加相应字符。因为题目中告诉我们密码由字母和数字组成,所以我们可以只添加a-z和0-9这两项 ...

November 13, 2022 · 1 min · Red

XUJCOJ:caiming:2022级C++第16次作业 第6题

本题 由 Red 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。 严禁抄袭,侵权必究。代码仅当参考使用。 挂彩灯 描述 有一堆彩灯,红色绿色两种颜色,现在要把它们串在一起,要求每个红灯后面至少要有1个绿灯,求一共有多少种不同的串法 输入 第1行是一个正整数n,表示测试案例的数量 第2到第n+1行是n组测试数据,每行数据有两个正整数,分别表示红灯的数量和绿灯的数量 输出 针对每行测试数据,输出不同的串法数量。(答案不会超过50万) 每组案例输出完都要换行。 样例输入 1 2 3 样例输出 3 提示说明 2个红灯3个绿灯合法的串法有:绿红绿红绿、红绿绿红绿、红绿红绿绿,一共3种 思路 高中排列组合题,应该来说思路是很直观的。 首先彩灯要遵循“一红配一绿”的规则,那么剩下需要进行排列的彩灯也就是用绿彩灯减去红彩灯数剩下的进行插空。那么问题就变成了十分经典的一种排列组合模型——将绿球排成一排,然后再从中挑出若干个与红球进行配对。因为根据题意,红球绝对不可能排在队头,所有这里只需要将 C(绿球数,红球数)算出来就行。并且根据排列组合C(m,n)=m!/n!*(m-n)!的特性,当红灯数大于绿灯数一半后,可以将超出部分消去,因此只需要对g-r进行计算就行 需要注意的是,为了防止数据超出,这里数据类型需要使用long long 代码[C++] [Forlogin] #include <iostream> #include <cmath> #include<limits.h> using namespace std; int main() { int n; cin >> n; while (n--) { long long int r, g, c, mul1 = 1, mul2 = 1; cin >> r >> g; if (r > g) { cout << 0; } else if (r == g || r == 0) { cout << 1; } else { if (r > g / 2) { r = g - r; } for (int i = 1; i<=r; i++) { mul1 = mul1 * g; mul2 = mul2 * i; g--; } c = mul1 / mul2; cout << c; } cout << endl; } return 0; }[/Forlogin]

November 10, 2022 · 1 min · Red

XUJCOJ:caiming:2022级C++第19次作业 第2题

本题 由 Red 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。 严禁抄袭,侵权必究。代码仅当参考使用。 第2题 描述 世人皆好奇lxy的体重,但lxy自己不愿意说,她由两个舍友lwj和knt表示可以透露lxy的体重,但不会直接说出数值。目前已知lxy的体重是1到300斤之间的某个整数(包括1和300)。 lwj喜欢透露lxy的体重除以a的余数等于b,knt喜欢透露lxy的体重大于d或者小于d。当她们透露了一定的消息以后,就可以唯一确定lxy的体重,当然也有可能因为自相矛盾而导致无解,也有可能有多个可能的解。 现有lwj和knt的一系列透露的消息,分别是lwj一句话knt一句话这样的循环,想知道最终是否能够确定lxy的体重。 输入 只有一组测试案例。 第1行是一个正整数n,表示lwj和knt一共透露了多少句话(两个人说话的总和) 第2到第n+1行是她们说的n句话,其中第偶数行是lwj说的,每行包括两个整数a、b(a>b>=0),表示lxy的体重除以a的余数等于b。第奇数行是knt说的,每行包括两个整数c和d(c只会是1或者-1,d>=0),如果c=1,表示lxy的体重大于d;如果c=-1,则表示lxy的体重小于d。 输出 如果根据她们说的n句话,lxy的体重是无解的,则输出-1;如果lxy的体重有多个合法的解,则输出0;如果lxy的体重有唯一解,则输出体重值。不要换行。 样例输入 4 12 0 1 110 10 0 -1 130 样例输出 120 提示说明 4句话分别代表体重除以12余0,体重大于110,体重除以10余0,体重小于130,故可以断定lxy的体重是120 思路 一般的思路是很直观的,那就是将所有数读进一个数组后再在knt提供的最小和最大数之间进行遍历,挨个判断余数是否相符就行 但事情并没有这么简单,你会发现在还没学二维数组之前,你很难将lwj提供的数据储存起来再参与到余数判断的遍历中(当然也有办法) 所有一般的思路永远没有二般的好用,下面就来介绍一下 结合对余数的理解,可以用累加的方式,从b开始,每次加a加到<=300为止。又因为一共有(n+1)/2行的要求,所有符合这个要求的数就是满足条件,在计数器cnt中就能+1了 需要注意的是,在判断“体重无解”或“体重有解”后要及时跳出程序,否则会出现多次输出的情况。具体操作就是在满足条件的最后都加上break 代码[C++] [Forlogin] #include<iostream> #include<limits.h> using namespace std; int main() { int n,i=2,wight[301]={0},min=1,max=300,cnt=0,k[2]={0},md=0; cin>>n; while(i<=n+1){ if(i%2==0){ int a,b; cin>>a>>b; for (int j=b;j<=300;j+=a) wight[j]++; }else{ int c,d; cin>>c>>d; if(c==1&&d>min) min=d; if(c==-1&&d<max) max=d; if(max<=min) {cout<<"-1";md=1;break;} } i++; }if(md!=1){ for (int j=min;j<=max;j++){ if(wight[j]==(n+1)/2){ k[0]=j; cnt++; if(cnt>1){ cout<<"0"; break; } } } if(cnt==0) cout<<"-1"; if(cnt==1) cout<<k[0]; } return 0; }[/Forlogin] 题外话 这题卡了超久 ...

November 9, 2022 · 1 min · Red

我和我的冤种V2ray 第一章——简单搭建【还没写完】

听我一句劝,不要擅自挂CDN!!! 事情经过 前些天到百度闲逛,便突发奇想地想重新搭个屋子 [没有部落格的人绝不认输] 于是一番走街串巷后,来到了一家奇怪的商店,看到了一个奇怪的商品 超!139!这还不冲他! …… 在买下这台香港服务器后,又是一番折腾,于是便搭好了这个小屋 虽然但是,这么冲明的在我就想,搭完Blog可不能白白浪费了这整整10M的带宽 于是我就对下面这个地方产生了人类原始的好奇心 好的,打不开,是时候拿起手里的小飞机尝试一下了 简单思路 既然有了一台在firewall以外服务器,同时经过尝试后可以与google.com直接ping通,那么接下来就需要一个合适的协议来搭建本地与主机之间的联系 众所周知,在TCP/IP四层结构里,firewall主要作用于传输层和网络层,通过对数据包的加密方式、请求内容、协议或端口等进行特殊筛选,从而达到无法出入境的效果 firewall的存在也只是让传统http的请求过程多了一步筛选(当然,现在的firewall也变得越来越聪明,会自动发起对服务器的请求来判断是否存在异常,本文暂不会提到应对手段) 于是就有dalao想出了一种奇妙的方法来规避这样定筛选,就是**欺骗** 欺骗的原理也很简单,只需要对发送到请求进行加密就行 事前准备 使用协议:Vmess 工具:V2ray、Putty 安排

November 9, 2022 · 1 min · Red