frp实现内网穿透
前言关于内网穿透,了解内网知识的小伙伴应该都了解他的作用处
比如在独自开发过程中,你在本机搭建的网站无法被互联网上其他用户所访问,因为是属于内网的环境,只有跟自己本机处于同一内网中的机器才能访问,这时候就需要用内网穿透的方法将本机或本机某个端口穿透到公网上去,那么就可以被公网上其他用户所访问了;
在渗透测试过程中,当你外网打点进入你的目标后,但是服务器是在内网,你现在的问题是目标服务器在内网你无法去连接他,那么也是需要用内网穿透的方法,将目标服务器或服务器端口映射到公网上面,那么我们就可以直接去链接上去了。
抑或是对方服务器在公网,我们kali在我们的内网,那么我们也需要用内网穿透把kali给映射到公网上去连接。
PS:本篇文章涉及技术均为本地操作,请勿恶意使用。造成严重后果责任自负
内网渗透的常用方法这篇文章主要会写frp进行内网穿透的方法,关于其他内网穿透的方法就很简单了,无非是借助一些图形化界面进行端口映射,相对来说较为简单,就不详细介绍了
注意:下方操作均为公网服务器开启8081和7000端口下进行操作,否则会失败
frp内网穿透实现转发服务0x01什么是frpfrp采用了go语言进行开发的。支持tcp,udp协议。可以使用http和https应用协议。是一个具有反向代理的内网穿透工具。frp可以使用socks,类似于隧道通讯。
同时frp是使用了内网的全端口全流量的,跟端口转发不同的是,端口转发仅仅是做了端口的流量的转发,而frp是全端口流量转发,可以使用SocksCap或者Proxifier进行使用。
0x02frp工作原理关于frp的工作原理,从这位师傅那里偷了张图,很好的解释了frp的工作原理; https://blog.csdn.net/yj222333
0x03前期准备
需要两台服务器,一台公网上的服务器,一台内网机器
公网服务器:81.69. ...
cactus主题源代码修改及优化
题外�?
在我调代码的时候意外发现了vscode的一个插件remote-ssh,可以ssh远程到你服务器上调代码,真的蛮方便的,大家如果也想使用直接百度用法即�?
前言
文章是以一个纯前端小白身份写的,甚至安装cactus主题之前我都不知道js和css是什么,如果写的哪里不对或者不好希望大家指出,感谢
事情的起因纯粹是看见了P牛的博客看着好看,简约又完美,事实证明简约才是美,于是就开始这篇文章,主题链接在主页,大家感兴趣的可以去看看�?
在使用这个主题的时候我发现了,这个主题的开发者以及大部分使用者并没有去优化过这个主题的源代码,我在网上搜索的时候,基本上都是配置一些设置等等,并没有提供源代码如何去更改,甚至原作者可能都没有出一个辅助教程,主题的文章也只有短短1200字左右,所以想补一下这方面空缺�?
本篇文章所带图片均是修改前和修改后对比
字体及图�?0x01全部字体修改
字体方面的修改主要在CSS文件中,CSS文件夹在theme/source/css文件夹下,是以styl结尾的文件夹
我们要改文章以及主页字体大小直接修改themes\cactus\source\css\style.styl文件,大�?44行左右的body,改为font-size: medium也就是字体的大小的意思,同样这么修改文章中的字体也会跟着变化,懂前端的小伙伴应该知道这会将body标签中的所有字体都调到这么大,我这里因为medium看的确实顺眼,大小合适,就直接这么改�?
body
margin: 0
height: 100%
background-color: $color-background
color: $color-text
font-display: swap // @stylint ignore
font-weight: 400 ...
百度网盘高速下载方�?
写这篇文章是因为在b站看到了一位up主发的视频,正巧百度网盘的下载速度也是偶尔困扰我的一个小问题,于是就有了这篇文章�?
同时这位up主的小红书有好多好看的壁纸,真滴很绝,大家感兴趣的可以去看看小红书号�?508939233
视频指路:https://www.bilibili.com/video/BV1Vt4y1g7iM/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=94fb2114c3889338d33bcb41c3e25538
虽然视频题目是mac,但是同样使用Windows等其他系�?
PS:注意这种方法只限于你下载单个文件,如果你需要同时下载多个文件,那么还是较为麻烦的,大家根据自己的需求来选择
速度对于下载大家最关心的还是速度,那么本人实测在30-50MB之间,取决于你的网速,如果你网速足够快甚至100MB有时候也是可以实现的
需要的资源这种方法需要结合一个网站和一个软件不过全部是免费的,链接都会贴在下方大家不用担心,作为一个白嫖资深用户,任何付费的服务我都会将他的成本节省到最低�?
网站需要用到一个叫极下的网站:https://jixia.ink/
软件用到motrix:https://motrix.app
motrix直接下载对应系统版本进行安装即可,也可以从GitHub进行下载https://github.com/agalwood/Motrix
不过下载motrix的时候我发现一个我问题,就是国内从官网也不好下,大家有条件还是整点科学上网�?
操作方法输入上方网站进入极下解析,你就可以看到会有很多链接,例如国内专用1�?
那么我们就根据我们所在地区点击进入即可,这里我是国内,就点击第一个链接,你就会看到很多选项,这个网站是支持油猴脚本的,点进 ...
学生信息管理系统
前言该程序已上线GitHub,也算是自己独立写的第一个Java程序,当个课设还是不错的,程序基本功能都可以实现,不过大家也别要求太高,毕竟是初学者; https://github.com/pulumusita/StudemtsSystem
这个系统相比大家都很熟悉,在大学课程肯定会有老师带着大家去开发这个程序,因为我之前没写过,所以这里就简单的再复习一下这个系统的写法
如果想去看原视频的,老师分析的更好更全面,大家可以去看看学习一下。
bilibili.com/video/BV17F411T7Ao?p=116&vd_source=94fb2114c3889338d33bcb41c3e25538
代码结构App.java:主入口及登录界面
getVerificationCode.java:生成验证码程序
StudentsSystem.java:学生信息管理系统主程序,从App.java登录成功后跳转到这个程序
User.java:JavaBean程序
Students.java:JavaBean程序
学生管理系统登录界面需求文档需求: 为学生管理系统书写一个登陆、注册、忘记密码的功能。
只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。
分析:登录界面:System.out.println("欢迎来到学生管理系统");
System.out.println("请选择操作1登录 2注册 3忘记密码");
用户类: 属性:用户名、密码、身份证号码、手机号码
注册功能: 1,用户名需要满足以下要求:
验证要求:
用户名唯一
用户名长度必须在3~15位之间
只能是字母加数字的组合,但是不能是纯数字
2,密码键盘输入两次,两次一致才可以进行注册。
3,身份证号码需要验证 ...
String相关练习2&&p108-110
对称字符串
之前写过类似的,不过这次是要用StringBuilder里面的一些方法来实现,比之前方便很多
这里还是两道题合成一道题来写了,改进了一下,第二个练习用到了StringJoiner类,但是在JDK api1.6中无法查到,大家注意一下
import java.util.Scanner;
import java.util.StringJoiner;
public class StringBuilderDemo {
public static void main(String[] args) {
while(true) {
String str = getString();
StringBuilder sb = new StringBuilder();
String str1 = sb.append(str).reverse().toString();
if (str.equals(str1)) {
System.out.println("该字符串为对称字符串");
} else {
System.out.println("该字符串不是对称字符串");
}
String[] arr = getStringArr(str);
StringJoiner sj = new StringJoiner(", ", "[", "]");
for (int i = 0; i < arr.lengt ...
String相关练习
用户登陆
https://www.bilibili.com/video/BV17F411T7Ao/?p=100&spm_id_from=333.851.header_right.history_list.click&vd_source=94fb2114c3889338d33bcb41c3e25538
跟黑马讲的方法不太一样,这里简单用了一下创建对象,好处在于可以创建数组储存多个用户名和密码组合
package Land;
public class Land {
private String username;
private String passwd;
public Land() {
}
public Land(String username, String passwd) {
this.username = username;
this.passwd = passwd;
}
/**
* 获取
* @return username
*/
public String getUsername() {
return username;
}
/**
* 设置
* @param username
* @return
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取
* @return pass ...
Java练习4&&黑马p94�?95
这篇文章只有一道题,因为这道练习稍微复杂一点,篇幅较长https://www.bilibili.com/video/BV17F411T7Ao?p=94&vd_source=94fb2114c3889338d33bcb41c3e25538
这里要求5我并没有设置id为String类型,所以要�?5改为:
要求五:查询数组id�?2的学生,如果存在,则将他的年�?+1�?
Students.javapackage test5;
//JavaBean文件: Students.java
public class Students {
private int id;
private String name;
private int old;
public Students() {
}
public Students(int id, String name, int old) {
this.id = id;
this.name = name;
this.old = old;
}
/**
* 获取
* @return id
*/
public int getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(int id) {
this.id = id;
}
/**
* 获取
* @return name
*/
...
Java练习2&&黑马p80、p91-p93
这篇涉及对象练习以及之前的课程留下的二维数组,随便写写喽………毫无规律
二维数组
来自黑马程序员Java课程p80:https://www.bilibili.com/video/BV17F411T7Ao?p=80&vd_source=94fb2114c3889338d33bcb41c3e25538
package test;
public class itheima_p80 {
public static void main(String[] args) {
//定义二维数组
int arr[][] = {
{22, 66, 44},
{77, 33, 88},
{25, 45, 65},
{11, 66, 99}
};
int yearSum = 0;
for (int i = 0; i < arr.length; i++) {
//i: 二维数组中的每个索引
int newArr[] = arr[i];//newArr:二维数组中的每个元素,即,每个一维数�?
int sum = getSum(newArr);
System.out.print("\n�?" + (i + 1) + "个季度的营业额为: " + sum);
yearSum = yearSum + sum;
...
Java练习2&&黑马p75�?76�?77�?78
数字加密
这里写了多个输出语句是为了出问题可以更清楚知道是哪个方法出了问题
package test;
import java.util.Scanner;
public class itheima_p75_1 {
public static void main(String[] args) {
System.out.print("请输入你想加密的数字:");
Scanner r = new Scanner(System.in);
int number = r.nextInt();
int arr1[] = getNumber(number);
arr1 = getPlus(arr1);
System.out.print("\n加法处理�?: ");
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.print("\n取余处理�?: ");
arr1 = getYu(arr1);
for (int i = 0; i < arr1.length; i++) {
System.out.print(arr1[i] + " ");
}
System.out.print("\n置换结果�?: ");
arr1 = getReverse(arr1);
for (int i = 0; i < a ...
Java方法简单学�?2&&黑马p68、p72、p73、p74
来自黑马程序员Java课程p68、p72、p73、p74
复制数组
package leetcode;
import java.util.Scanner;
public class itheima_p72 {
public static void main(String[] args) {
int[] arr = {0,1,2,3,4,5,6,7,8,9,};
System.out.println("请依次输入你想复制的数组索引,第一个数组为开头,第二个数组为结尾: ");
Scanner sc = new Scanner(System.in);
int from = sc.nextInt();
Scanner ac = new Scanner(System.in);
int to = ac.nextInt();
int arr3[] = copyOfRange(arr,from,to);
for (int i = 0; i < arr3.length; i++) {
int a = arr3[i];
System.out.print(a+" ");
}
}
public static int[] copyOfRange(int[] arr,int from,int to){
int index = 0;
int newArr[] = new int[to - from];
for (int i = from; i < ...