20145222<网络对抗> 逆向及BOF进阶实践学习总结 实践目的 1.注入shellcode 2.实现Return-to-libc攻击 知识点学习总结 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起 Linux中两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop…
20145222 黄亚奇 <网络对抗>Exp8 Web基础 实践具体要求 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) 理解JavaScript的基本功能,理解DOM.编写JavaScript验证用户名.密码的规则. (3).Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表(1分) (4).Web后端:编写PHP网…
20145222黄亚奇<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode注入实践过程…
20145222黄亚奇<JAVA程序设计>课程总结 每周读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 第八周读书笔记 第九周读书笔记 第十周读书笔记 实验报告链接汇总 实验一 JAVA开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Android开发基础 实验五 Java网络编程及安全 代码托管 我的开源中国链接 代码量汇总 根据学习总结博客,每周的关于书本上的代码大致敲了…
20145217<网络对抗> 逆向及BOF进阶实践学习总结 实践目的 1.注入shellcode 2.实现Return-to-libc攻击 知识点学习总结 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起 Linux中两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop…
学习目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有一定的权限修改可执行文件) 通过缓冲区溢出:输入数据,使其超出缓冲区大小,并覆盖住返回地址(新的返回地址为另一部分我们希望执行.却本不应该执行的代码部分首地址) 基础知识 objdump -d test :反汇编test more : more命令和cat的功能一样都是查看文件里的内容,但有所不同的…
web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息. 防御:在设计程序时,应该设计成不易篡改的或者说能有主动判断合法性的代码,并且将存有敏感信息的数据库放在防火墙内部. (2)XSS攻击的原理,如何防御 原理:是一种网站应用程序的安全漏洞攻击,是代码注入的一种.它允许恶…
实践目标 掌握metasploit的基本应用方式. 具体需要完成(1)ms08_067;(2)ms11_050:(3)Adobe(4)成功应用任何一个辅助模块. 实验内容 掌握metasploit的基本应用方式以及常用的三种攻击方式的思路 主动攻击,即对系统的攻击,不需要被攻击方配合,这里以ms08_067为例 针对浏览器的攻击,以ms11_050为例,针对IE7的漏洞攻击 针对客户端的攻击,即对具体应用上的攻击,以对Adobe阅读器的漏洞攻击为例 同样尝试针对具体的应用攻击,这里是针对word…
20145222 <Java程序设计>实验五实验报告 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 本次实验我的结对编程对象是2014517周恩德,我负责编写客户端代码的编写,他负责服务器代码的编写,以下是我实验进行的步骤: 一.首先,我们要对计算机网络的一些基本概念有所了解,可以参考一下娄老师提供的Java网络编程. 二.客户端的编程主要由三个步骤实现:建立网络连接.数据交换.关闭网络连接. 1.首先我们要建立连接,在Java API…
20145222 <Java程序设计>第10周学习总结 学习总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员只需要调用即可. 网络通讯方式: 在现有的网络中,网络通讯的方式主要有两种: 1. TCP(传输控制协议)方式 2. UDP(用户数据报协议)方式 网络编程步骤: 1. 建立网络连接:客…
20145222<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建Android环境 安装Android,核心是配置JDK.SDK 运行Android 如图1: 进入自己建立的工程,如图2: 在左边的栏中,选择Android --> app --> res --> layout,进入自己建立的工程,如图3: 运行成功,输出学号,如图5: 问题及解决过程 查了…
20145222第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Java DataBase Connectivity)是Java联机数据库的标准规范 定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,标准API中接口会由数据库厂商操作,称为JDBC驱动程序 依操作方式可将驱动程序分为四种类型:JDBC-ODBC Bridge Driver:Native API…
20145222<Java程序设计>第2次实验报告 实验步骤与内容 一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 二.实验步骤 1.单元测试 (1) 三种代码 伪代码.产品代码.测试代码 (2) TDD(Test Driven Devlopment, 测试驱动开发) a.先写测试代码,然后再写产品代码的开发方法叫"测试驱动开发"(TDD).TDD的一般步骤如下: -明确当前要…
教材学习内容总结 第15章 通用API 1 日志 1 日志API简介 java.util.loggging包提供了日志功能相关类与接口. 使用日志的起点是Logger类,Logger类的构造函数表示为protected,不是java.util.logging同包的类不能直接以new创建,取得Logger实例,必须用Logger的静态方法getLogger(). 调用getLogger()时必须指定Logger实例所属空间名称,以 . 区分层级,名称空间层级相同的Logger,其父Logger组态…
教材学习内容总结 第十三章 时间与日期 即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间. 秒的单位定义时基于TAI.也就是铯原子辐射的振动次数. Unix时间是1970年1月1日00:00:00为起点二经过的描述,不考虑闰秒,很多Unix系统.平台.软件等,都选择这时间作为时间表示发的起算点. UTC考虑了地球自转越来越慢而有闰秒修正,确保UTC与UT相差不会超过0.9秒.最近一次的闰秒修正为2012年6月30日. 儒略历:修正了罗马历隔三年设置一闰年的错误,改采四…
实验一 Java开发环境的熟悉(Linux+Eclipse) 实验内容及步骤 使用JDK编译.运行简单的Java程序 在NetBeans IDEA中输入如下代码: package ljp; public class HelloJDB { public static void main(String[] args) { int i = 5; int j = 6; int sum = add(i, j); System.out.println(sum); sum = 0; for(i=0; i< 1…
教材学习内容总结 第十章 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. 从应用程序角度来看,如果要将数据从来源取出,可以使用输入串流,如果要将数据写入目的地,可以使用输出串流. 在来源与目的地都不知道的情况下可以设计一个通用的dump()方法,该方法接受InputStream与OutputStream实例,分别代表读取数据的来源,以及输出的目的地 import java.io.*; public class IO { public static void dump…
教材学习内容总结 Java中所有错误都会被打包为对象,运用try.catch,可以在错误发生时显示友好的错误信息. 运用try.catch,还可以在捕捉处理错误之后,尝试恢复程序正常执行流程.如: import java.util.*; public class Average3 { public static void main(String[] args) { Scanner console = new Scanner(System.in); double sum = 0; int coun…
教材学习内容总结 第6章 为了避免重复的行为定义使用继承. 要学会如何正确判断使用继承的时机以及继承之后如何活用多态. 继承的好处之一,就是若你要将name.lexel.blood改为其他名称,那就只要修改Role.java就可以了,只要是继承Role的子类都无法修改. 子类只能继承一个父类,子类与父类之间会有is-a的关系. 其中判断方法例子如下: Role role1=new SwordsMan();//SwordsMan是一种Role,编译通过. SwordsMan swordsMan=r…
学号 <Java程序设计>第X周学习总结 教材学习内容总结 第四章: 类是对象的设计图,对象是类的实例. 参考名称与对象数据成员同名时,可以在数据成员前使用this区别. =是用在指定参考名称参考某个对象,==是用在比较两个参考名称是否参考同一对象. 数组在Java中就是对象,索引由0开始,存取超过索引范围,就会抛出ArrayIndexOutOfBoundsException错误. 字符串本质是打包字符数组的对象,是java.lang.String类的实例. 第五章: 封装的目的主要就是隐藏对…
教材学习内容总结 类型: 整数:short(占2字节).int(4).long(8). 浮点数:float(4).double(8) 字符:char(2) 布尔:boolean类型表示true与false. 单行注释:"//",多行注释:"/* */". 记住各种常用格式控制符号. 变量的命名:不能使用数字和特殊字符开头:名称不能与Java的关键词和保留字同名:主要以清楚易懂为主(例如驼峰式命名法). 比较.条件运算:成立时用boolean类型true表示,不成立时…
教材学习内容总结 BJVM是Java程序唯一认识的操作系统,其可执行文件为.class文档 Java的三大平台为Java SE,Java EE,Java ME. Java SE的四个部分为:JVM,JRE,JDK与Java语言. JRE包括:Java SE API与JVM. Java的原始码扩展名为.java,编译完后扩展名为.class. 一个.java文档可以定义多个类,但是只能有一个公开类,而且主文档名必须与公开类名称相同. main()方法的形式一定得是:public static vo…
20145311<网络对抗技术>逆向及BOF进阶实践 学习目的 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode 的地址. Return-to-libc 攻击实验:即使栈有不可执行的能力,无法将shellcode放入堆栈中运行,但我们却可以直接让漏洞程序调转到现存的代码来实现我们的攻击.(本次实验所用的是已经载入内存的 libc 库中的 system()函数等)…
20145216史婧瑶<网络对抗>逆向及Bof进阶实践 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. Linux中两种基本构造攻击buf的方法:retaddr+nop+shellcode ,nop+shellcode+retaddr ,缓冲区小就就把shellcode放后边,不然就放前边. 实验步骤 1.准备一段shellcode代码 2.设置环境 Bof攻击防御…
20145238荆玉茗<网络对抗>-逆向及Bof进阶实践 实践目的:注入shellcode 准备一段shellcode代码 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. Shellcode是溢出程序和蠕虫病毒的核心,提到它自然就会和漏洞联想在一起 Linux中两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop+shellcode+retad…
<网络对抗> 逆向及Bof进阶实践 实践目标 注入一个自己制作的shellcode并运行这段shellcode: 实践步骤 准备工作 root@5224:~# apt-get install execstake //安装execstake ... root@5224:~# execstack -s pwn1 //设置堆栈可执行 root@5224:~# execstack -q pwn1 //查询文件的堆栈是否可执行 X pwn1 root@5224:~# echo "0"…
Shellcode注入 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. 实践过程 shellcode的生成方法指导书上已经写得很详细了,在做实验时我直接用的是老师上课用的shellcode: 将环境设置为:堆栈可执行.地址随机化关闭 选择anything+retaddr+nops+shellcode的结构构造攻击buf,先猜测返回地址所在位置,并且找到shellcod…
实践内容 本次实践的对象是一个名为hf20145234的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段. 实践方法 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数. 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 这…
PS:我是分了两次做的这次试验,第二次实验的时候电脑出了一点问题熄火了……原本后面的是有图的结果博客没保存图没了…… WebGoat WebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的.这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索. 因为WebGoat是基于java开发的软件,所以它具有平台无关性,在各种操作平台上都可以运行,所以本次实验所处的系统为kali机 在命令…
Apache 先通过apachectl start命令开启Apach,使用netstat -aptn命令查看端口占用: 因为端口号80已经被占用(上次实验设置的),所以先修改/etc/apache2/ports.conf里的端口为5234后重新开启: 可以在浏览器中输入localhost:5234来检查是否正常开启,这里可以看到打开了上次实验的网页,开启正常: 简单的表单网页 在/var/www/html即上次实验网页所在的位置编写一个有表单的网页: 在浏览器中打开localhost:5234/…