作者: 马文杰

Magic

86 篇文章

HTTP/HTTPS/SSH
HTTP和HTTPS,SSH协议都属于应用层协议: HTTP:超文本传输协议 HTTPS:安全的超文本传输协议, 在HTTP协议基础上加入了SSL协议保证安全传输 SSH:安全外壳协议 0x01 HTTP&HTTPS   1.1 简介 HTTP&HTTPS主要应用于Web浏览器和网站服务器之间传递数据,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。而HTTPS为了数据传输的安全,在HTTP协议的基础上加入了SSL协议,SSL协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。   1.2 HTTP和HTTPS的主要区别: 一: HTTPS协议需要申请CA证书,一般免费的证书很少,需要交费; 二: HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密传输协议; 三: HTTP和HTTPs使用的是完全不同的连接方式,用的端口号也不一样(HTTP: 80 HTTPS: 443); 四:HTTP协议的连接简单,是无状态的,HTTPS协议是由SSL+HTTP协议构成的可进行加密传输,身份认证的网络协议,比HTTP协议安全。     0x02 SSH SSH协议为建立在应用层基础上的安全协议,SSH是目前较可靠的,专门为远程登录会话和其他网络服务提供安全性的协议,并且用SSH协议传输的数据是经过压缩的,加快数据传输的速度。SSH提供两种级别的安全验证,一: 基于口令的安全验证;二: 基于密匙的安全验证。   2.1 基于口令的安全验证 只要你知道自己的…
【OS】08 – 突破512字节的限制(下)【Memcpy、FatVec:通过Fat表加载文件到内存】
参考:【OS】08 - 突破512字节的限制(下)   0x01 Memcpy 1.1 code Memcpy函数完成并测试 org 0x7c00 jmp short start nop define: BaseOfStack equ 0x7c00 BaseOfLoader equ 0x9000 RootEntryOffset equ 19 RootEntryLength equ 14 EntryItemLength equ 32 FatEntryOffset equ 1 FatEntryLength equ 9 header: BS_OEMName db "D.T.Soft" BPB_BytsPerSec dw 512 BPB_SecPerClus db 1 BPB_RsvdSecCnt dw 1 BPB_NumFATs db 2 BPB_RootEntCnt dw 224 BPB_TotSec16 dw 2880 BPB_Media db 0xF0 BPB_FATSz16 dw 9 BPB_SecPerTrk dw 18 BPB_NumHeads dw 2 BPB_HiddSec dd 0 BPB_TotSec32 dd 0 BS_DrvNum db 0 BS_Reserved1 db 0 BS_BootSig db 0x29 BS_VolID dd 0 BS_VolLab db "D.T.OS-0.01" BS_FileSysType db "FAT12 " start: mov ax, cs mov ss, ax mov ds, ax mov es, ax mov sp, BaseOfStack mov ax, Roo…
【OS】07 – 突破512字节的限制(中)【主要内容:内存比较函数 MemCmp 和根目录区查找函数 FindEntry 】
原理参考:【OS】07 - 突破512字节的限制(中)   0x01 验证1:内存比较函数 MemCmp 1.1 code ;@ ;目的: 验证MemCmp函数 ;参考此函数调用即可 org 0x7c00 jmp short start nop define: BaseOfStack equ 0x7c00 ;start from here start: mov ax, cs mov ss, ax mov ds, ax mov es, ax mov sp, BaseOfStack ; test MemCmp mov si,MsgStr mov di,Target mov cx,MsgLen call MemCmp cmp cx,0 jz lable jmp last lable: mov bp,MsgStr mov cx,MsgLen call Print last: hlt jmp last ; ds:si --> source ; es:di --> destination ; cx --> length ; ; return: ; (cx == 0) ? equal : noequal MemCmp: push si push di push ax compare: cmp cx, 0 jz equal mov al, [si] cmp al, byte [di] jz goon jmp noequal goon: inc si inc di dec cx jmp compare equal: noequal: pop ax pop di pop si ret ; es:bp --> string address ; cx --> string len…
调试器 – gdb
  GDB的常规应用(动态分析工具==目标=>进程) 自定义程序的启动方式(指定影响程序运行的参数),指定了命令行参数(本质是main函数的参数),软件运行的结果就可能是不同的 设置 条件断点(条件满足时暂停程序的执行,用于递归和循环语句) 回溯检查导致程序异常结束的原因(Core Dump),gdb监视,如果访问0地址处,程序告诉你具体出问题的代码行 动态改变程序执行流(定位问题的辅助方式),跳过某一行程序的执行 GDB是GNU项目中的调试器,能够跟踪或改变程序的执行 GDB同时支持软件断点,硬件断点和数据断点。   GDB的启动方式 直接启动: gdb gdb test.out //这样是关注test.out文件产生的进程(file是gdb内部的指令,指明当前的gdb需要关注的进程) gdb test.out core // 异常崩溃产生的core文件 动态链接: gdb test.out pid // gdb监视test.out产生的某个进程,gdb动态跟踪进程的行为   示例一:直接启动 :~$ gdb // 启动 (gdb) file test.out // 载入目标程序 前两行 ==> gdb test.out gdb关注目标程序对应的进程 (gdb) set args arg1 arg2 // 指定程序执行时的命令行参数,指定启动test.out的参数 (gdb) run // 执行目标程序   示例二:动态链接(调试正在运行的程序) :~$ sudo gdb // 用sudo启动gdb,要动态链接,必须这样,否则没权限 (gdb) attach 进程的pid号 // 链接到目标进程,链接成功后 (前两行 ==> gdb a…
栈溢出:代码植入
0x01 代码植入原理: 通过栈溢出让程序执行输入数据中植入的代码,把返回地址覆盖为buffer的起始地址,植入的代码放到buffer中 实验验证:向password.txt文件中植入一个二进制机器码,这段机器码用来调用windows的一个api函数MessageBoxA,最终在桌面弹出一个消息框并显示"failwest"字样。   code /***************************************************************************** To be the apostrophe which changed "Impossible" into "I'm possible"! POC code of chapter 2.4 in book "Vulnerability Exploit and Analysis Technique" file name : stack_overflow_exec.c author : failwest date : 2006.10.1 description : demo show how to redirect EIP to executed extra binary code in buffer Noticed : should be complied with VC6.0 and build into debug version the address of MessageboxA and the start of machine code in buffer have to be make sure …
栈溢出:突破密码验证程序 – 控制程序执行流程
  0x01 淹没帧状态值控制程序执行原理 /***************************************************************************** To be the apostrophe which changed "Impossible" into "I'm possible"! POC code of chapter 2.2 in book "Vulnerability Exploit and Analysis Technique" file name : stack_overflow_var.c author : failwest date : 2006.9.20 description : demo show nearby var overrun in stack input 8 letters to bypass authentication Noticed : complied with VC6.0 and build into begug version version : 1.0 E-mail : failwest@gmail.com Only for educational purposes enjoy the fun from exploiting :) ******************************************************************************/ #include <stdio.h> #define PASSWORD "1234567" int …
栈溢出:突破密码验证程序 – 修改邻居变量
  0x01 修改邻里变量的原理 1.1 程序: /***************************************************************************** To be the apostrophe which changed "Impossible" into "I'm possible"! POC code of chapter 2.2 in book "Vulnerability Exploit and Analysis Technique" file name : stack_overflow_var.c author : failwest date : 2006.9.20 description : demo show nearby var overrun in stack input 8 letters to bypass authentication Noticed : complied with VC6.0 and build into begug version version : 1.0 E-mail : failwest@gmail.com Only for educational purposes enjoy the fun from exploiting :) ******************************************************************************/ #include <stdio.h> #define PASSWORD "1234567" i…
Ollydbg中寻找main函数入口
《C++反汇编与逆向分析技术》讲解如何查找main函数: OllyDbg默认情况下将程序中断在PE装载器开始处,不是在main函数开始处,因为需要手工识别main函数的位置。 识别main函数如同识别一个人。要识别一个人,首先观察外观,识别身体和外貌特征,把这些特征和自己认识的人匹配,从而判断这个人的身份。   main函数特征: 1、有3个参数,分别是argc、argv、环境变量信息,而且main函数是启动函数中唯一具有3个参数的函数。同理WinMain函数是启动函数中唯一具有4个参数的函数。 2、main函数返回需要调用exit函数,结束程序根据main函数调用特征,找到入口代码第一次调用exit函数处,离exit最近的且有3个参数的函数通常就是main函数。 老钱这里只讲到了识别main函数啊,没有讲怎么找到main函数。       F8大法好(借鉴下,这个比较容易) 文章参考:https://blog.csdn.net/qingshenxue/article/details/6209788 ===================== 先声明下:这个和脱壳没关系,不是找壳里面的程序入口哦,只是程序本身的入口,个别朋友不要误会哈。 一般用OllyDBG打开程序的时候,并不是直接定位到程序入口,而是还要先进行一系列的初始化工作,但做这些工作的反汇编代码我们是不需要的,所以我们要快速跳过,直接到程序入口。 我先把方法写出来,然后再简单分析一下初始化的时候都干了什么。 1. 一路F8下去,分别步过下列两个函数: call dword ptr ds:[<&KERNEL32.GetVersion>] ; kernel32.GetVersio…
2024年你有什么新年愿望?
          如图:。           与其说新年愿望,不如说是新年规划,按照规划的方向好好生活,我更多的还是想要追求心态上的:"松弛感"、"平衡感",工作上的:"多渠道收入"、"工作开心"。     同时许下愿望:可以在国内的每个城市都小住一段时间,感受不同城市的温度,嗯...有人一起就更完美。    
平台关爱保护未成年人公约
为更好地承担保护未成年人合法权益的社会责任,保障未成年人的合法权益,制定了涉未成年人内容管理规范,对其他不利于未成年人身心健康的内容加以严肃处理。 1、侵害未成年人人身安全和合法权益 严禁任何侵害未成年人人身安全的暴力色情等违法行为的内容发布或传播,包括但不限于: (1)涉及未成年人性行为、裸露、性交易、模拟性动作,对未成年人猥亵、性幻想、性骚扰等行为; (2)展示校园暴力、打架斗殴、霸凌欺辱,对未成年家暴等行为; (3)对未成年人网络暴力、人肉搜索,发布人身攻击、侮辱谩骂、引战等不友好言论; (4)未成年人吸毒、赌博; (5)违法雇佣、招聘童工。 对于上述负面题材的关联衍生讨论、解读、分析等内容,基于对未成年人信息保护和社会影响等因素,平台也将酌情考虑对相关内容采取限制内容传播的处理。 2、侵犯未成年人隐私 禁止任何侵犯未成年人个人隐私行为的内容发布和传播、将对此类内容采取删除下线的处理。平台参考是否对未成年人身份信息进行了规避处理做出判断。 3、未成年人不良导向 禁止发布和传播涉及未成年人不良行为导向的内容,包括但不限于: (1)展示未成年人抽烟、酗酒、纹身、粗口、医美整容、化妆、厌学弃学、成团出道、出入营业性娱乐场所、参加黑社会组织等不良行为; (2)展现对立煽动、拉踩引战,号召打榜投票等极端饭圈文化; (3)展现未成年人过度饮食等不健康的生活方式等内容。 并对下列易产生不良行为导向关联的内容,依据其违规程度采取限制内容传播或删除下线的处置,包括但不限于: (1)易引起低俗联想的未成年人不适宜着装、举止、言论等; (2)未成年人燃放烟花爆竹等危险行为; (3)传播、二创或恶搞未成年人相关的负面事件; (4)食用易引发未成年人误食的仿真类食品、猎奇食材。 4、影响未成年人价值观 禁止发布对未…
核心价值观公约
核心价值观公约 本平台倡导建立遵纪守法、乐观向上、和谐友爱的社区,呼吁大家共同努力共同维护我们的社区环境。 1、 遵守宪法和法律法规,践行社会主义核心价值观,弘扬爱国主义、集体主义和社会主义, 传播正确的历史观、民族观、国家观和文化观,弘扬中华民族优秀传统文化, 弘扬社会公德、职业道德、家庭和个人美德,尊重公序良俗, 弘扬科学精神、普及科学知识, 提倡积极健康向上的时代风尚和生活方式。 2、关爱未成年人群体,关照老年人群体,尊重性别平等;不攻击、谩骂、侮辱、诽谤、歧视他人,不侵犯他人合法权益,共同营造温暖和谐的社区氛围。 3、鼓励原创、优质的内容。重视文字的正确使用,避免出现错别字,减少用拼音首字母缩写表达,自觉遵守语言文字规范。尊重劳动成果、勤俭节约、合理饮食,避免炫耀超高消费,反对浪费。 4、提高网络安全防范意识,对网络交友、诱导赌博、贷款、返利、中奖、网络兼职点赞员等网络诈骗高发领域及行为应提高警惕。如发觉异常,可随时向平台举报。 5、鼓励发布经过科学论证的内容,不造谣、不传谣。鼓励经济、教育、医疗卫生、司法等专业人士通过平台认证发布权威真实的信息,分享专业知识,促进平台发展。