Linux提权汇总
最近在接触渗透,发现提权是一项必不可少的内容,特新建一篇记录使用过的提权方法
使用suid vim.basic文件实现提权要求:vim.basic文件有suid权限
chmod u+s /usr/bin/vim.basic可以设置
先adduser test1一个普通权限用户,开始提权!
通过以下命令可以找到存在suid权限的文件123find / -user root -perm -4000 -print 2>/dev/null #常用find / -perm -u=s -type f 2>/dev/nullfind / -user root -perm -4000 -exec ls -ldb {} \;
可用于提权的文件有
nmapvimfindbashmorelessnanocp
利用vim提权的思路是修改etc/passwd文件,为自己添加一个有root权限的用户
passwd文件用户格式为:用户名:密码:uid:gid:注释:home目录:用户的shell
这边可以看看root用户的格式root:x:0:0:root:/root:/bin/ ...
CINTA_03
第一题手动解以下同余方程,求出x,写过程(a)$25x \equiv 15 \pmod{9}$
$易知25在模29下的逆元25^{-1}$
已知egcd(25,29) = 1
$由 Bézout 定理 , 存在整数 r 和 s 使得 :gcd(25,29) =25r+29s =1(a 和 b 为非零整数 )$
解得r=7,s=−6
同时模29,25∗7≡1(mod 29)
$所以,25^{−1}=7$
x \equiv 15 * 7 \pmod{29} \equiv 105 * \pmod{29} \equiv18 * \pmod{29}得,$x \equiv 18 * \pmod{29}$
(b)$5x \equiv 2 \pmod{26}$
$先算5在模26下的逆元5^{-1}$
使用egcd算法 , 即 egcd(5,26) = 1
$由 Bézout 定理 , 存在整数 r 和 s 使得 :gcd(5,26) =5r+26s =1(a 和 b 为非零整数 )$
得出,r=21,s=−4
$同时模26,5∗(21) ≡1(mod 26),所以5^{-1}=21$
同时乘21,x ...
春秋云境-Hospital
概述在这个场景中,你将扮演一名渗透测试工程师,被派遣去测试某家医院的网络安全性。你的目标是成功获取所有服务器的权限,以评估公司的网络安全状况。该靶场共有 4 个 flag,分布于不同的靶机。
架构
内网地址
Host or FQDN
简要描述
172.30.12.5
Web01
Spring + Shiro
172.30.12.6
Server02
Nacos
172.30.12.236 172.30.54.179
Web03
Fastjson
172.30.54.12
Web04
Grafana + Postgresql
前期信息打点不知道为什么fscan最新版扫不出来8080端口,改成了1.8.2发现可以了
fscan扫描得到如下内容:123456789101112131415161718D:\PenetrationW>.\fscan64 -h 39.99.231.151 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/_ ...
ctfshow-命令执行
补一下这个什么命令执行,看看大佬的wp有什么奇妙的姿势
PS: 带二级标题的姿势是我觉得不错的知识
发这篇博客时,发现只能显示2000行,我以为每篇博客极限就是2000行左右了,再多就显示不了了,就把后面几道题单独放吧(这是一开始的设想)
加了一篇之后发现在原来的地方还是断掉了,没有显示,才发现是因为类似于1`{#IFS}=3`这种会导致博客无法正常显示,可以选择用3个反引号而不是一个来绕过或者将#变成\#
Web29(通配符)1234567891011 <?phperror_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__);}
eval(string $code)把字符串$c作为PHP代码执 ...
CINTA_02
第一题题目:利用 egcd 算法的思路,手动计算以下数值的 Bézout 系数和最大公因子:
a = 132,b = 78
a = 273,b = 131
解:egcd算法可以帮助我们计算两个整数 (a) 和 (b) 的最大公因子(gcd),以及找到贝祖系数 (x) 和 (y),使得:
ax + by = \text{gcd}(a, b)1: a = 132,b = 78
\begin{aligned}
\begin{pmatrix}
1 & 0& 132 \\
0 & 1 &78
\end{pmatrix}
&\rightarrow
\begin{pmatrix}
0 & 1 & 78 \\
1 & -1 &54
\end{pmatrix}
\rightarrow
\begin{pmatrix}
1 & -1 &54 \\
-1 & 2 &24
\end{pmatrix}\\\\
&\rightarrow
\begin{pmatrix}
-1 & 2 &24 \\
3 & -5 & 6
\end{pmatrix}
\rightarrow
\begin ...
春秋云境-Initial
写在最前面圈圈表示你太菜了,并反手向你丢了7个沙砾(qwq)
钱队一直说渗透很重要,这次就用这个最简单的靶场来进行正式的入门(希望不会在明年7月留下遗憾)
开始!flag1题目给出了一个ip地址39.101.193.135,我们可以使用nmap来看看他开启了那些端口,命令为1sudo nmap --min-rate 10000 39.101.193.135
这段命令是以最小速率 10000 对全部端口(1-65535)进行扫描,10000 是权衡的结果,数字过大扫描速度快,但容易遗漏端口,数字过小则扫描时间过长,经验表明 10000 就是扫描的合适速度。-p 是端口参数,-p- 表示对所有端口进行扫描。扫描结果如下:1234567891011┌──(root㉿kali)-[~/Desktop]└─# sudo nmap --min-rate 10000 39.101.193.135 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-21 21:49 EDTNmap scan report for 39.101.19 ...
CINTA_01
三种整数乘法实现用C语言分别对naive_mul、rec_mul和simple_mul (课堂上讲过的三种整数乘法)进行编程实现没听到课,先写一遍python理解一下原理123456789101112131415161718192021222324252627282930313233343536373839def is_even(t): if (t % 2 == 0): return True if (t % 2 == 1): return Falsedef naive_mul(a,b): if b == 0: return 0 return a + naive_mul(a,b-1)def rec_mul(a,b): c = a * (b // 2) if(b%2 == 0): return 2 * c if(b%2 == 1): return a + 2 * cdef simple_mul(a,b): if b == 0: return 0 if ...
CINTA_00
斌头的暑假作业,不是同学提醒我都忘了课堂派有这个……
浅浅证明证明: 当n>3时,$n! > 2^{n}$
解:
已知n!=n * (n-1) * (n-2) *……* 3 * 2 *1
已知 n>3,n!=n*(n-1)*(n-2)*……*6 一定成立
把$n!$分为两部分,第一部分为从右往左数4个,第二部分则为剩下的,记为$m1,m2$,同样的,$2^{n}$以同样的分法分成两部分,记为$n1,n2$
当$n = 4$时,$m2 = n2 = 0$,$m1 = 4! = 24$,$n1 = 2^{4} = 16$,$m1 > n1$,得证
当$n > 4$时,因为m2每一项均大于n2对应项,则不难得出$m2 > n2$,$m1 > n1$的证法同上,则得证
综上所述,当$n>3$时,$n! > 2^{n}$得证
小小程序写一个C语言程序,计算阶乘:输入整数n,输出n!
1234567891011121314151617181920212223242526272829303132#include <stdio.h> ...
ctfshow-SSRF
继续拿题玩玩我的vps,虽然这些题以前没有vps的时候也做出来了,但是这一次重温还是让我完善了自己的vps配置(Nginx原来要改配置文件才能执行PHP文件),总的来说还是很有收获
开胃小菜SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)
相关函数和类
函数
作用
file_get_contents()
将整个文件或一个url所指向的文件读入一个字符串中
readfile()
输出一个文件的内容
fsockopen()
打开一个网络连接或者一个Unix 套接字连接
curl_init()
初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用
fopen()
打开一个文件文件或者URL
PHP原生类SoapClient
在触发反序列化时可导致SSRF
...
ctfshow-文件包含
以前没vps一直不敢做文件包含,一遇到远程就自闭,碰巧发现华为云有超绝性价比服务器,立买,爽打ctf,来老地方继续练手
web78源码:1234567 <?phpif(isset($_GET['file'])){ $file = $_GET['file']; include($file);}else{ highlight_file(__FILE__);}
filter读文件payload: ?file=php://filter/convert.base64-encode/resource=flag.php
web7912345678 <?phpif(isset($_GET['file'])){ $file = $_GET['file']; $file = str_replace("php", "???", $file); include($file);}els ...