《网络渗透技术》由安全焦点团队中的san,alert7,eyas,watercloud这四位成员共同完成。
本书的内容不敢妄称原创,更多的是在前人的研究基础上进一步深入发掘与整理。
但是书中的每一个演示实例都经过作者的深思熟虑与实际调试,凝聚了四位作者多年积累的经验。
从安全界顶级的杂志和会议看来,中国整体的系统与网络安全技术在世界上并不出色。
因为目前中国籍的专家在历届Phrack杂志上只有两篇文章,其中一篇还是在Linenoise里,而在Blackhat和Defcon会议的演讲台上至本书截稿时还未曾出现过中国籍专家。
虽然语言问题是其中一个很大的障碍,但我们也不得不正视这个令人沮丧的结果。
现在国内市场关于网络安全的书籍数不胜数,但是真正能够直面系统与网络安全底层技术的却又寥寥无几。
《网络渗透技术》以尽可能简单的实例深入浅出地揭示了系统与网络安全底层技术,我们不敢奢望每个看过本书的读者能够成为网络安全专家,但我们希望本书能够给后来者一些引导,希望以后在Phrack,Blackhat和Defcon上看到越来越多中国籍专家的身影。
内容导读本书共分十个章节,深入浅出地介绍了系统与网络安全底层技术。
第1章基础知识非常感谢安全焦点论坛技术研究版一些朋友的提议,在本书的最开始增加基础知识这个章节。
第1章简要地介绍了几种常用调试器和反汇编工具的基本使用方法。
对系统与网络安全有一定了解的读者可以跳过这一章。
第2章缓冲区溢出利用技术缓冲区溢出利用技术是本书的重点。
本章先介绍了缓冲区溢出的历史,然后一共介绍了六种平台操作系统的利用技术。
想要了解各种平台操作系统构架的读者不能错过本章。
作者精心设计了几个浅显易懂的实例,并且记录了每一步的调试过程。
相信读者看过本章内容以后,对缓冲区溢出的原理和利用技术会有深刻的理解。
第3章Shellcode技术如果没有Shellcode,那么缓冲区溢出一般也只能达到拒绝服务等效果,渗透测试者要想获得控制,必须用Shellcode实现各种功能。
比如,得到一个Shell,监听一个端口,添加一个用户。
本章不但介绍了各种平台的Shellcode的撰写与提取方法,还深入讨论了各种高级Shellcode技术及相应源码。
如远程溢出攻击时搜索套接字Shellcode技术的各种方法,这种技术在远程渗透测试过程中将更加隐蔽。
第4章堆溢出利用技术操作系统对堆的管理比栈复杂多了,而且各种操作系统使用的堆管理算法完全不同。
本章介绍了Linux,Windows和Solaris这三种操作系统的堆溢出利用技术,作者为每种操作系统都精心设计了几个浅显易懂的实例来描述各种利用方法。
第5章格式化串漏洞利用技术格式化串漏洞的历史要比缓冲区溢出短得多,而且一般也被认为是程序员的编程错误。
但是格式化串漏洞可以往任意地址写任意内容,所以它的危害也是非常致命的。
本章主要讨论了Linux,SolarisSPARC和Windows这三种平台的利用技术,由于各种操作系统的Libc不同,所以它们的利用过程也略有不同。
第6章内核溢出利用技术本章主要讨论当内核在数据处理过程中发生溢出时的利用方法。
内核态的利用与用户态很不一样,要求读者对系统内核有比较深入的了解。
本书的这一版目前只讨论Linuxx86平台的利用方法。
第7章其他利用技术本章讨论了一些不是很常见或特定情况下的溢出利用技术,主要有*BSD的memcpy溢出、文件流溢出、C++中溢出覆盖虚函数指针技术和绕过Pax内核补丁保护方法。
其中绕过Pax内核补丁保护方法这个小节要求读者对ELF文件格式有比较深入的了解。
第8章系统漏洞发掘分析相信许多读者会喜欢这一章。
在介绍了各种系统漏洞的利用方法以后,本章开始介绍漏洞发掘的一些方法,并且有多个实际漏洞详细分析,也算是前面几章利用技术的实践内容。
第9章CGI渗透测试技术通过系统漏洞获得服务器控制是最直接有效的方法,但是在实际的渗透测试过程中,客户的服务器可能都已经打过补丁了,甚至用防火墙限制只允许Web服务通行。
这时最好的渗透途径就是利用CGI程序的漏洞。
本章先介绍了跨站脚本和Cookie的安全问题,然后重点介绍PHP的各种渗透测试技巧。
第10章SQL注入利用技术现今的CGI程序一般都使用后台数据库,CGI程序的漏洞又导致了SQL注入的问题。
SQL注入利用技术是CGI渗透测试技术的一个重大分支,本章详细介绍了MySQL和SQLServer这两种最常见数据库的注入技术。
附录A系统与网络安全术语中英
2024/3/29 22:34:33 4.71MB 网络渗透技术 网络渗透 渗透技术
1
1、 设计一个实现任意长的整数进行四则运算的程序。
2、 输入和输出形式是按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开,长整数位数没有上限,以分号结束长整型数据的输入。
3、 程序执行的命令包括:1)、输入长整数1;
2)、输入长整数2;
3)、输入执行的运算符;
4)、计算并输出结果;
5)、结束。
4、测试数据:(以加法为例)(1)、0;0;+;应输出“0”。
(2)、-2345,6789;-7654,3211;+;应输出“-1,0000,0000”。
(3)、-9999,9999;1,0000,0000,0000;+;应输出“9999,0000,0001”.(4)、1,0001,0001;-1,0001,0001;+;应输出“0”.(5)、1,0001,0001;-1,0001,0000;+;应输出“1”。
(6)、-9999,9999,9999;-9999,9999,9999;+;应输出“-1,9999,9999,9998”.(7)1,0000,9999,9999;1;+;应输出“1,0001,0000,0000”.
2024/3/8 4:34:04 253KB 长整数 四则运算
1
#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLED_DATP0sbitLED_SEG0=P2^7;sbitLED_SEG1=P2^6;sbitLED_SEG2=P2^5;sbitLED_SEG3=P2^4;#defineTIME_CYLC100//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100#definePLUS_PER10//码盘的齿数,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈#defineK1.65//校准系数unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchardataDisbuf[4];//显示缓冲区uintTcounter=0;//时间计数器bitFlag_Fresh=0;//刷新标志bitFlag_clac=0;//计算转速标志bitFlag_Err=0;//超量程标志voidDisplayFresh();//在数码管上显示一个四位数voidClacSpeed();//计算转速,并把结果放入数码管缓冲区voidinit_timer();//初始化定时器T0\T1voidDelay(uintms);//延时函数voidit_timer0()interrupt1/*interruptaddressis0x000b*/{TF0=0;//定时器T0用于数码管的动态刷新TH0=0xC0;TL0=0x00;Flag_Fresh=1;Tcounter++;if(Tcounter>TIME_CYLC){Flag_clac=1;//周期到,该重新计算转速了}}voidit_timer1()interrupt3/*interruptaddressis0x001b*/{TF1=0;//定时器T1用于单位时间内收到的脉冲数//要速度不是很快,T1永远不会益处Flag_Err=1;//如果速度很高,我们应考虑另外一种测速方法:T测速法}voidmain(void){Disbuf[0]=0;//开机时,初始化为0000Disbuf[1]=0;Disbuf[2]=0;Disbuf[3]=0;init_timer();while(1){if(Flag_Fresh){Flag_Fresh=0;DisplayFresh();//定时刷新数码管显示}if(Flag_clac){Flag_clac=0;ClacSpeed();//计算转速,并把结果放入数码管缓冲区Tcounter=0;//周期定时清零TH1=TL1=0x00;//脉冲计数清零}if(Flag_Err)//超量程处理{Disbuf[0]=0x9e;//开机时,初始化为0000Disbuf[1]=0x9e;Disbuf[2]=0x9e;Disbuf[3]=0x9e;while(1){DisplayFresh();//不再测速等待复位i}}}}//在数码管上显示一个四位数voidDisplayFresh(){P2|=0xF0;LED_SEG0=0;LED_DAT=table[Disbuf[0]];Delay(1);P2|=0xF0;LED_SEG1=0;LED_DAT=table[Disbuf[1]];Delay(1);P2|=0xF0;LED_SEG2=0;LED_DAT=table[Disbuf[2]];Delay(1);P2|=0xF0;LED_SEG3=0;LED_DAT=table[Disbuf[3]];Delay(1);P2|=0xF0;}//计算转速,并
2024/3/2 19:19:54 400KB 光电传感器、测速、protus、pcb
1
,基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。
任何整形变量的范围是-(2^15-1)~(2^15-1)。
输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。
1
用74HC595级联驱动四位数码管,当然明白了原理,可直接驱动八位数码管,可直接看效果
2024/2/10 14:44:03 46KB 74HC595 驱动数码管
1
定点除法运算有两种不同的实现方法,一种是恢复余数法,即在运算过程中,必须先算减法,若余数为正,才知道够减,若余数为负,则知道不够减,不够减时必须恢复原来的余数,以便再继续往下运算。
另一种是不恢复余数法,又称加减交替法,此次设计即是采用加减交替法来实现四位二进制数的定点原码一位除法。
2023/12/22 4:01:48 660KB 加减交替法
1
用verilog语言编写的补码加减法器,其中三位数值为,一位符号位。
2023/12/12 12:08:01 606B 补码四位加减法器,verilogHDL
1
该代码为基于微信小程序不同参考椭球下的高斯正反算代码,用JavaScript语言编写,对理解高斯正反算及代码的编写具有重要意义,可以直接粘贴到微信小程序中使用。
1
里面包含多种四位集成数码管,可满足不同需求。
2023/11/12 15:40:44 31KB Altium designer led
1
除法器可以直接改变范围变换多位除法器,可以在数码管显示输入输出的数值!
2023/11/5 17:27:11 851B VHDL;除法器
1
共 87 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡