渗透测试

DC靶机

前言将近一年没玩Web,没玩渗透了,企业来学校培训教了点Web安全的姿势(不教二进制,有点失望!!!后来问了下,原来是半路出家的,不会 (滑稽 ),教的时候,是用DC靶机中的DC-4,做完实验后,干脆写个博客算了,就当是玩玩,慢慢地也会把其它几个补全来。下载地址

二进制

write函数

下面介绍下write这个普遍用来泄漏信息的函数: write函数原型是write(fd, addr, len),即将addr作为起始地址,读取len字节的数据到文件流fd(0表示标准输入流stdin、1表示标准输出流stdout)。如果顺利,write()会返回实际写入的字节数,当有错误发生时则返回-1,错误代码存入errno中。

二进制

无libc漏洞利用总结

前言通过ROP绕过DEP和ASLR防护,我们要事先得到目标机器上的libc.so或者具体的linux版本号才能计算出相应的offset。在没有目标系统libc文件的情况下,应该如何做呢?这时候就需要通过memory leak(内存泄露)来搜索内存找到system()的地址。,我们可以使用pwntools的DynELF模块来泄漏地址信息,从而获取到shell。通过泄露内存的方式可以获取目标程序libc中各函数的地址,这种攻击方式可以绕过地址随机化保护。下文通过一个例子讨论泄露内存的ROP攻击。

二进制

格式化字符串漏洞

格式化字符串漏洞原理​ 格式化字符串函数将第一个参数作为格式化字符串,根据其来解析之后的参数。通俗来说,格式化字符串函数就是将计算机内存中表示的数据转化为我们人类可读的字符串格式。一般来说,格式化字符串在利用的时候主要分为三个部分 格式化字符串函数 格式化字符串 后续参数,可选

二进制

Linux下的保护机制

前言在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了NX、PIE等机制,例如存在NX的话就不能直接执行栈上的code,存在PIE的话各个系统调用的地址就是随机化的。Linux中的保护机制包括canary,NX(no-execute),PIE(position-independent executables),RELRO(read only relocation),FORTIFY等等,暂时没写关于内核安全防护的内容,以后再补充。检查可执行文件属性可使用checksec。