20145229吴姗珊<网络对抗>shellcode注入&Return-to-libc攻击深入(待上传) shellcode注入 shellcode是一段代码,是溢出程序和蠕虫病毒的核心,一般可以获取权限,如果将代码存储到对方的栈中,将返回地址利用缓冲区溢出就可以指向我们所希望的shellcode 实践 首先需要一个shellcode,我就取名为20145229shellcode啦 编译运行一下呗 为了在后面查询文件的堆栈是否可以执行,所以需要安装execstack指令 配置环境,查询…
20145229吴姗珊<网络对抗>WEB基础实践 基础与实践 基础问题 1.什么是表单 表单是可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一部分是HTML源代码用于描述表单,另一部分是脚本或应用程序用于处理提交的信息. 表单由文本域.复选框.单选框.菜单.文件地址域.按钮等表单对象组成,所有的部分都包含在一个由标识符标志起来的表单结构中.表单的种类有注册表.留言薄.站点导航条.搜索引擎等. 2.浏览器可以解析运行什么语言 超文本标记语言:HTML 脚本语言:ASP.PH…
20145229吴姗珊<网络对抗>MSF基础应用 试验过程及基础知识 实验完成问题回答 用自己的话解释什么是exploit,payload,encode. exploit:通过一个漏洞对程序进行攻击的过程 payload:为了实现攻击的一种工具,比如shellcode,可以造成缓冲区溢出 encode:对payload进行编码加密之类的,就是一种伪装技术 实验总结与体会 说实话这次的msf模块问题在几次实验里算是简单的了,命令很少,步骤比较相似,最大的问题就是靶机,有两个实验用winxp sp…
20145229吴姗珊逆向BOF实践 实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段. 我们将学习两种方法: 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数. 手工修改可执行文件,改变程序执行…
20145229吴姗珊 <Java程序设计>课程总结 (按顺序)每周读书笔记链接汇总 第一周:http://www.cnblogs.com/20145229ss/p/5248728.html 第二周:http://www.cnblogs.com/20145229ss/p/5273371.html 第三周:http://www.cnblogs.com/20145229ss/p/5300058.html 第四周:http://www.cnblogs.com/20145229ss/p/5324084…
20145229吴姗珊 <Java程序设计>第8周总结 教材学习内容总结 第十四章 NIO与NIO2 NIO: InputStream.OutputStream的输入输出,基本上是以字节为单位进行低层次处理,虽然需要直接面对数组,但实际上多半是对字节数组中整个区块进行处理.dump()方法是整块数据读入后又整块数据写出. NIO2: 现今世界上存在着各式各样的文件系统,不同的文件系统会提供不同的存取方式,文件属性,权限控制等操作.在JDK7出现以前,常需要对特定的文件撰写特定的程序,不仅撰写方…
20145229吴姗珊 <Java程序设计>第9周总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以解决更换数据库.应用跨平台的需求 JDBC(Java DataBase Connectivity)是Java联机数据库的标准规范,定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,标准API中接口会由数据库厂商操作,称为JDBC驱动程序 JDBC标准分为两…
20145229吴姗珊 <Java程序设计>2天小总结 教材学习内容总结 由于这周学的内容比较简单,主要是关于日期.日期之类的东西.所以自己从书上看了一些内容 总结了第四章 认识对象 和第五章 对象封装 的内容 使用定义类:生活中描述事物无非就是描述事物的属性和行为 属性:对应类中的成员变量. 行为:对应类中的成员函数. 定义类其实在定义类中的成员(成员变量和成员函数) 使用标准类:使用java.math.BigDecimal 基本类型打包器:打包基本类型:基本类型long.int.doubl…
20145229吴姗珊 <Java程序设计>第7周学习总结 教材学习内容总结 第13章时间与日期 即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间. 秒的单位定义时基于TAI.也就是铯原子辐射的振动次数. UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒.最近一次的闰秒修正为2012年6月30日. Unix时间是1970年1月1日00:00:00为起点二经过的描述,不考虑闰秒,很多Unix系统.平台.软件等,都选择这时间作为时间表示发的…
20145229吴姗珊<java程序设计>第2次实验报告 实验名称 Java面向程序设计,采用TDD的方式设计有关实现复数类Complex. 理解并掌握面向对象三要素:封装.继承.多态. 运用并且掌握单元测试.Java面向程序设计,采用TDD的方式设计有关实现复数类Complex. 实验步骤 本次实验在编写并设计有关实现复数类Complex的功能下,尝试使用TDD方式,并且运用单元测试 伪代码: 先写伪代码,伪代码可以用汉语写,伪代码与具体编程语言无关,不要写一些不相关的语句,伪代码从意图层面…
20145229吴姗珊 <Java程序设计>两天小总结 教材学习内容总结 第十章 输入\输出 1.java将输入\输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象 2.从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流(java.io.InputStream 实例),如果要将数据写入目的地,可以使用输出串流 3.串流继承架构 System.in:文本模式下取得整行用户输入 System.err:标准错误输出串流,用来立即显示错误信息 System.setErr:重新指定标准…
20145229吴姗珊 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入\输出 1.java将输入\输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象 2.输入串流代表对象为java.io.Inputstream实例,输出串流代表对象为java.io.OutputStream实例 3.FileInputStream是InputStream的子类,可以指定文件名创建实例,创建文档开启可用来读取数据,FileOutputStream是OutputStream的子类,可以指…
20145229吴姗珊<Java程序设计>2天总结 教材学习内容总结 异常处理 1.使用try.catch Java中所有错误都会被包装成对象,可以尝试(try)执行程序并捕捉(catch)代表错误的对象后做一些处理.使用了try.catch语法,JVM会尝试执行try区块中的程序代码,如果发生错误,执行程序会跳离错误发生点,然后比对catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是就执行catch中的程序代码 2.使用throw,throws 当方法设计流程出现异常,不知道如何…
20145229吴姗珊 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 1.设计错误对象都继承自java.lang.Throwable类 2.Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误信息 3.Throwable有两个子类:java.lang.Error与java.lang.Exception 4.catch括号中列出的异常不得有继承关系,否则会发生编译错误 5.catch语句可以有多个,分别处理不同类的例外.Java运行…
20145229吴姗珊 <Java程序设计>小总结 教材学习内容总结 由于今天考试考到了操作题,根本无从下手,然后才意识到原来之前的学习都是蜻蜓点水,一味的把学习建立在给老师学,为家长学的基础上,每次都只是机械的敲代码,根本没有理解教材,因为今天考试考的是6,7章的内容然后自己一片空白,所以这次想从教材里入手,代码全部都托管了,踏踏实实的学一点东西,一些基础的东西,不是不懂装懂为了博客而博客的东西,至少有一点点改变,让自己的生活不再充满堕落与无知. 继承的必要性 如果某一数据成员改为其他名称,…
20145229吴姗珊两天小总结 <Java程序设计>第4周学习总结 教材学习内容总结 由于自己的基础不好对知识的理解不透彻,所以这两天的学习还是集中在第六章和第七章,对知识点多了一点理解,然后把上周书上代码没打完的打完了 多态与is-a 在java中,子类只能继承一个父类:检查语法的逻辑是否正确,方式是从=号右边往左读:右边是不是一种左边呢:例: Role role1 = new SwordsMan(); SwordsMan swordsMan = role1; SwordsMan是一种 R…
20145229吴姗珊 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 6.1继承共同行为 1.继承基本上就是避免多个类间重复定义共同行为 简单的类的定义 使用swordsMan继承Role,其中,SwordsMan就是子类,Role就是父类 类似的使用Magician继承Role类 如何确定真的有继承 继承的好处之一就是,就是若你要将name.level.blood改为其他名称,就只要修改Role.java就可以了 2.子类只能继承一个父类,继承除可避免类间重复的行…
20145229吴姗珊 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 4.1类与对象 1.对象(Object):存在的具体实体,具有明确的状态和行为 2.类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 3.类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例 4.二者的关系:类是对象的设计图,对象是类的实例,生成对象要先定义类 5.一个原始码中可以有很多个类定义,但只能有一个是公开类,且文档中的主文…
20145307陈俊达<网络对抗>shellcode注入 Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. 实践过程 将环境设置为:堆栈可执行.地址随机化关闭 选择anything+retaddr+nops+shellcode的结构构造攻击buf,先猜测返回地址所在位置,并且找到shellcode所在地址 在终端注入这段攻击buf: 先不输入&…
教材学习内容总结 一.类型.变量与运算符 1.类型 整数:可细分为short整数.int整数和long整数.不同长度的整数可储存的整数范围也不同. 字节:byte类型顾名思义.长度就是一字节,需要逐字节处理数据时则需要使用.用于整数时,可表示-128~127的整数. 浮点数:主要用来储存小数数值,主要分为float和double. 字符:char类型用来储存‘A','B','林'等字符符号. 布尔:boolean类型可表示true和false,分别表示真和假. 2.变量 基本规则:用关键词来声明…
教材学习内容总结 第一章 JAVA 平台概论 1.JAVA不仅仅是一门程序设计语言,还是标准规范 2.1995年5月23日被公认为JAVA的诞生日 3.J2SE包含了JDK和JAVA程序语言 4.三大平台为java SE.java EE.java ME 5.java SE主要可以分为JVM.JRE.JDK和java语言 6.编译执行java的JDK/JRE,并不只有sun才能实现,IBM同样可以撰写JDK/JRE 7.我认为,在掌握JAVA的学习中,java并非只是程序语言,首要的是掌握最简单的…
20145318<网络对抗>注入shellcode及Return-to-libc 注入shellcode 知识点 注入shellcodeShellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地.漏洞利用中最关键的是Shellcode的编写. 实践过程…
20145327<网络对抗>--注入shellcode并执行 准备一段Shellcode 老师的shellcode:\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00 设置堆栈可执行 关闭地址随机化 Return-to-libc攻击深入 缓冲区溢出的常用攻击方法是用 shellcode 的地址来覆盖…
20145308 <网络对抗> 逆向及BOF进阶实践 注入shellcode+Return-to-libc攻击 学习总结 实践目的 注入shellcode 实现Return-to-libc攻击 知识点学习总结 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起 Linux中两种基本构造攻击buf的方…
20144303石宇森<网络对抗>PC平台逆向破解 实验1:shellcode注入 实验基础 1.Linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop+shellcode+retaddr.我们采用anything+retaddr+nops+shellcode的方法. 2.实验的目标是找到返回地址的位置和shellcode的地址.然后通过修改返回地址使其自动执行shellcode 3.实验前通过命令:apt-get install exestack安装e…
Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址.Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起,毕竟Shellcode只对没有打补丁的主机有用武之地.漏洞利用中最关键的是Shellcode的编写. 实践过程 首先写一段shellcode,保存为20145310s…
shellcode 准备一段Shellcode 我用的老师的shellcode:\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00 环境设置 设置堆栈可执行 关闭地址随机化 然后,跳进了坑里 用结构为:nops+shellcode+retaddr进行了shellcode注入 6个nop+shellco…
Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. 实践过程 shellcode的生成方法指导书上已经写得很详细了,在做实验时我直接用的是老师上课用的shellcode: 将环境设置为:堆栈可执行.地址随机化关闭 选择anything+retaddr+nops+shellcode的结构构造攻击buf,先猜测返回地址所在位置,并且找到shellcod…
20145320注入Shellcode并执行 准备一段Shellcode 首先先准备一段C语言代码:这段代码其实和我们的shell功能基本一样 为了之后能够看到反汇编的结果,这次采用的静态编译.正常返回shell. 经过一系列的工作我们可以得到这段注入的shellcode代码的反汇编结果(这些代码可以在网上下载,这里感谢一下许心远同学) \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31…
注入Shellcode并执行 实践指导书 实践过程及结果截图 准备一段Shellcode 我这次实践和老师用的是同一个 设置环境 构造要注入的payload 我决定将返回地址改为0xffffd3a0 跟着老师跳坑失败了 查找原因.同上面步骤运行,gdb调试. 重新开始 看到 01020304了,就是返回地址的位置.shellcode就挨着,所以地址是 0xffffd3c0 终于成功了 说明 懒得打太多字了,老师的指导书说的很详细了,我在不同的地方都标记了,剩下的内容和老师的指导相同,就不再重复了…