格式化字符串漏洞利用实战之 njctf-decoder
前言 格式化字符串漏洞也是一种比较常见的漏洞利用技术。ctf 中也经常出现。 本文以 njctf 线下赛的一道题为例进行实战。 题目链接:https://gitee.com/hac425/blog_data/blob/master/decoder 正文 程序的流程如下 部分函数已经进行了标注,看程序打印出来的提示信息就知道这个是一个 base64 解码的程序,然后可以通过 猜测 + 验证 的方式,找到那个 用于 base64 解码的函数。 这个程序的漏洞在于将 base64 解码后的字符串直接
Pwn With longjmp
前言 这个是 seccon-ctf-quals-2016 的一个题,利用方式还是挺特殊的记录一下。 题目链接 http://t.cn/RnfeHLv 正文 首先看看程序的安全措施 haclh@ubuntu:~/workplace/jmper$ checksec jmper
[*] '/home/haclh/workplace/jmper/jmper'
Arch: amd64-64-little
RELRO: Full RELRO
Stack: No
Thinkphp学习之终结
ThinkPHP5.0 学习笔记 第一章 TP5.0 基础 01 tp5.0 安装 1.TP5.0的安装 1.1源代码包安装 1.1.1thinkphp官网(www.thinkphp.cn) 下载 1.1.2解压到网站根目录(www) 1.1.3地址栏访问:http://localhost/tp5/public 1.2 composer安装 1.3 git安装 02 配置虚拟主机 1.配置本地路由表(C:\Windows\System32\drivers\etc\hosts) 添加 127.0
linux 11201(11203) ASM RAC 安装
注意:11G的RAC安装,如果升级,则会新建目录在放软件,原来的不删除,所以所需空间比较大。 1。安装系统,把所有的开发包全部安装上 关掉防火墙和SELinux yum -y install compat-libstdc++* yum -y install elfutils-libelf-devel* yum -y install elfutils-libelf-devel-static* yum -y install gcc* yum -y install gcc-c++* yum -y i
Java集合——Hashtable
1、Hashtable简介(1)Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。(2)Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。(3)Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。Hash...
SpringMVC(4.4):Controller接口控制器详解(4)
4.12、ParameterizableViewController参数化视图控制器,不进行功能处理(即静态视图),根据参数的逻辑视图名直接选择需要展示的视图。Java代码 1234<bean name="/parameterizableView" class="org.springframework.web.servlet.mvc.ParameterizableViewControlle...
SpringMVC(4.5):Controller接口控制器详解(5)
4.15、MultiActionController之前学过的控制器如AbstractCommandController、SimpleFormController等一般对应一个功能处理方法(如新增),如果我要实现比如最简单的用户增删改查(CRUD Create-Read-Update-Delete),那该怎么办呢?4.15.1 解决方案1、每一个功能对应一个控制器,如果是CRUD则需要四个控制器,...
SpringMVC(4.6):Controller接口控制器详解(6)
4.16、数据类型转换和数据验证流程:1、首先创建数据绑定器,在此此会创建ServletRequestDataBinder类的对象,并设置messageCodesResolver(错误码解析器);2、提供第一个扩展点,初始化数据绑定器,在此处我们可以覆盖该方法注册自定义的PropertyEditor(请求参数——>命令对象属性的转换);3、进行数据绑定,即请求参数——>命令对象的绑定;...
SpringMVC(4.7):Controller接口控制器详解(7)
4.16.2、数据验证1、数据绑定失败:比如需要数字却输入了字母;2、数据不合法:可以认为是业务错误,通过自定义验证器验证,如用户名长度必须在5-20之间,我们却输入了100个字符等;3、错误对象:当我们数据绑定失败或验证失败后,错误信息存放的对象,我们叫错误对象,在spring Web MVC中Errors是具体的代表者;线程不安全对象;4、错误消息:是硬编码,还是可配置?实际工作应该使用配置方...
Java集合——LinkedList
LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。除此之外,LinkedList还提供了一些可以使其作为栈、队列、双端队列的方法。这些方法中有些彼此之间只是名称的区别,以使得这些名字在特定的上下文中显得更加的合适。先看LinkedList类的定...
Java集合——HashSet
public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.SerializableHashSet实现Set接口,内部维护一个HashMap实例变量。不保证顺序,允许null元素。对于基本的操作,如add,remove,contains,size,只需要...
Java集合——Java8之HashMap
一、前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快,提升性能。好~下面就开始分析源码。二、HashMap数据结构 说明:上图很形象的展示了HashMap...
三种不同数据库递归查询直线上级sql
if ("sqlserver"){ sql1 = "WITH allsub(id,name )\n" + " as (\n" + " SELECT id,name FROM tablename where id="+_subId+" \n" + " UNION ALL SELECT a.id,a.name FROM tablename a,allsub b where a.id .
MyBatis与Redis
一。MyBatis 1.简介 ① MyBatis是一个持久层框架,完成的是对数据库的访问和操作;(CRUD) ② 它解决了JDBC对数据库的操作与访问过程中存在的问题,是对原有JDBC技术的封装 ③ MyBatis解决JDBC的问题 【1】虽然JDBC操作数据库的方式很直观,但其核心就是对于数据库的操作。多个方法间存在大量的冗余 【2】基于Java中面向对象的基本思想,所以我们会将查询出...
如何修改web浏览器title文字及icon
<%@ page pageEncoding="UTF-8"%>
<html>
<head>
<title>yongqi_wang的博客</title>
<link rel="bookmark" type="image/x-icon" href="
SpringMVC原理篇
1.SpringMVC工作原理 ① 客户端发送一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定), web容器将请求转交给DispatcherServlet ② DispatcherServlet接收到这个请求后将根据请求的信息(URL、http方法、报文、参数、cookie等信息)以及Ha...
如何获取客户端ip及百度地图经纬度
<!DOCTYPE html>
<%@ page pageEncoding="UTF-8"%>
<html>
<body>
<script src="https://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type=&qu
今日推荐
周排行