这次Code-Breaking Puzzles中我出了一道看似很简单的题目pcrewaf,将其代码简化如下: <?php function is_php($data){ return preg_match('/<\?.*[(`;?>].*/is', $data); } if(!is_php($input)) { // fwrite($f, $input); ... } 大意是判断一下用户输入的内容有没有PHP代码,如果没有,则写入文件.这种时候,如何绕过is_php()函数来写入webs…
原理需要知识:正则NFA回溯原理,php的pcre.backtrack_limit设置. 正则NFA回溯原理正则表达式是一个可以被"有限状态自动机"接受的语言类."有限状态自动机",拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移.常见的正则引擎被分为DFA(确定性有限状态自动机)与NFA(非确定性有限状态自动机)他们匹配输入的过程是:DFA:从起始状态开始,一个字符一个字符读取输入串,根据正则一步步确定至下一个转移状态,直到匹配…
例子来源于<精通正则表达式(第三版)>这本书,我贴出来: 这里的NFA是正则的一种引擎,书中介绍了一共三种引擎:NFA,DFA和POSIX NFA.像一般我们常用的.NET,java.util.regex中都使用传统型的NFA. 这里纠正下书中的印刷错误,第二条正则是/"([^\\*]|\\.)*"/,类似将选择分支颠倒. 先从第一条正则开始:/"(\\.|[^\\"])*"/ 根据匹配优先,尽可能多的去匹配文本,筛选条件根据NFA引擎的原理,…
C语言使用正则表达式,可以利用pcre库,这个比较不错的哦. 在使用过程中,利用python进行测试正则表达式是否OK,后发现出现了问题.如下所示: regex.c:11:18: warning: unknown escape sequence: '\/' [enabled by default] char* url_re="(https?|ftp|mms):\/\/([A-z0-9]+[_\-]?[A-z0-9]?\.)*[A-z0-9]+\-?[A-z0-9]+\.[A-z]{2,}(\/.…
web应用一般采用基于表单的身份验证方式(页面雏形如下图所示),处理逻辑就是将表单中提交的用户名和密码传递到后台数据库去查询,并根据查询结果判断是否通过身份验证.对于LAMP架构的web应用而言,处理逻辑采用PHP,后台数据库采用MySQL.而在这一处理过程,由于种种处理不善,会导致不少严重的漏洞,除去弱口令与暴力破解,最常见的就是SQL注入.SQL注入可以在SQLNuke——mysql 注入load_file Fuzz工具看到如何利用,而本篇博客的重点是利用MySQL隐形的类型转换绕过WAF的…
前言:之前关于safeSEH保护机制的原理等信息,可在之前的博文(内存保护机制及绕过方案中查看). 利用未启用SafeSEH模块绕过SafeSEH ⑴.  原理分析: 一个不是仅包含中间语言(1L)且未启用SafeSEH的模块中的异常处理,如果异常处理链在栈上,异常处理函数指针不在栈上,那么这个异常处理就可以被执行. 所以,我们能找到一个未启用SafeSEH的模块,就可以利用它里面的指令作为跳板来绕过SafeSEH. ⑵.环境准备: i.实验代码: 生成exe文件的代码: #include "s…
利用加载模块之外的地址绕过safeSEH 前言:文章涉及的概念在之前的文章中都有过详细的讲解 ⑴.  原理分析: 当程序加载进内存中后,处理PE文件(exe,dll),还有一些映射文件,safeSEH是不会对这些映射文件做安全检查.所以如果在这些映射文件中找到一些跳板地址(意义见之前的绕过利用/GS机制),就可以达到控制EIP的目的,执行恶意代码. 如上图,可以看到在PE文件之前有很多map(映射文件),safeSEH是不会对这些文件做安全检测的. ⑵.环境准备: i.实验代码: #includ…
1. PCRE简介 2. 正则表达式定义 3. PCRE正则表达式的定义 4. PCRE的函数简介 5. 使用PCRE在C语言中实现正则表达式的解析 6. PCRE函数在C语言中的使用小例子 1. PCRE简介     PCRE(Perl Compatible Regular Expressions即:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写.PCRE是一个轻量级的函数库,比Boost之中的正则表达式库小得多.PCRE十分易…
没事儿看了一下subtee和enigma0x3今年在BSides Nashville 2017上的演讲,觉得这两个猥琐男简直不能再猥琐了 :-)其中有一个猥琐小技巧,又可以让我们好好hunting一番了.我这里先简单介绍一下吧: 在很多时候我们发现我们在目标机器环境里想要运行个js或者vbs脚本很困难,原因就是因为好多环境里使用了白名单限制机制只允许特定签名的脚本文件可以执行.在这样的环境里,我们应该怎么样去执行这些脚本呢? 首先在windows 7以上系统中,有这样一个目录:c:\window…
shell #!/usr/bin/expect spawn ssh root@192.168.137.141 expect "*password:" send "lizhenghua\r" expect "*#" interact 需要安装expect, 如果执行失败 yum install expect -y…
preg_match绕过总结 什么是preg_match 绕过方法 1.数组绕过 preg_match只能处理字符串,当传入的subject是数组时会返回false 2.PCRE回溯次数限制 PHP利用PCRE回溯次数限制绕过某些安全限制 import requests from io import BytesIO files = { 'file': BytesIO(b'aaa<?php eval($_POST[txt]);//' + b'a' * 1000000) } res = reques…
前言 最近在给学校的社团成员进行web安全方面的培训,由于在mysql注入这一块知识点挺杂的,入门容易,精通较难,网上相对比较全的资料也比较少,大多都是一个比较散的知识点,所以我打算将我在学习过程中遇到的关于的mysql注入的内容给全部罗列出来,既方便个人之后的复习,也方便后人查找相关资料. 本文部分内容可能会直接截取其他大牛的文章,截取的内容我都会进行声明处理.如有侵权,请发email联系我(asp-php#foxmail.com)删除. 转载需注明来源+作者ID:Yunen. Mysql简介…
[安洵杯 2019]easy_serialize_php 直接给了源代码 <?php $function = @$_GET['f']; function filter($img){ $filter_arr = array('php','flag','php5','php4','fl1g'); $filter = '/'.implode('|',$filter_arr).'/i'; return preg_replace($filter,'',$img); } if($_SESSION){ uns…
[强网杯 2019]随便注 先尝试普通的注入 发现注入成功了,接下来走流程的时候碰到了问题 发现过滤了select和where这个两个最重要的查询语句,不过其他的过滤很奇怪,为什么要过滤update,delete,insert这些sql语句呢? 原来这题需要用到堆叠注入: 在SQL中,分号(;)是用来表示一条sql语句的结束.试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入,而堆叠注入可以执行任意sql语句 这下就好理解了,过滤上面那些语…
[文章作者]       :h_one [漏洞程序名称]:mplayer.exe [漏洞类型]       :缓冲区溢出 [保护方式]       :safeseh+dep [操作平台]       : xp sp3 [工具]              :windbg, immunity Debugger,mona等 ps:这个程序是前两年xx比赛的题目,肯定有朋友玩过了,要求是利用seh进行漏洞利用,同时开启dep保护. 我想,那时我应该在玩泥巴,不知道啥叫crack,fuzz,漏洞挖掘利用等…
PHP正则式PCRE的总结差不多就下边这些了.参考 PCRE与perl的差异 .   锚(^.$.\A.\Z/\z):^.$在多行模式下是非紧固的,在单行模式下是紧固的:而\A.\Z / \z在任何模式下都是紧固的(\G表示在目标中首次匹配位置,还可以与$offset参数一起使用). 断言:一个断言指定一个必须在特定位置匹配的条件,它们不会从目标字符串中消耗任何字符,因此也不会出现在结果中.一个断言子组以前瞻断言"(?=)"或"(?!)".后瞻断言"(?&…
说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中所挖掘的关于这方面的思路,有些是网上已经有的,有些是我自己不断摸索所发现的. 这里说下APP手势密码绕过的危害,手势密码一般应用在支付类,金融类,安全类等相关的APP,比如XX金融,XX支付,XX钱包,XX安全中心等APP,这些基本都会有手势密码,手势密码是一个用户的第一把APP锁,如果这个锁攻破了,那么后面也就容易对用户造成威胁,虽然这个问题利用起来是需要物理操…
之前写的文章收到了很多的好评,主要就是帮助到了大家学习到了新的思路.自从发布了第一篇文章,我就开始筹备第二篇文章了,最终打算在07v8首发,这篇文章我可以保障大家能够学习到很多思路.之前想准备例子视频,请求了很多家厂商进行授权,但是涉及漏洞信息方面的,厂商都是很严谨的,所以,整个过程没有相关的实际例子,但是我尽可能的用详细的描述让大家能够看得懂.大家不要睡着呦~ 说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中…
早在2012 年 12 月 17 日一些采用 PHP 的知名博客程序 WordPress被曝光存在严重的漏洞,该漏洞覆盖WordPress 全部已发布的版本(包括WordPress 3.8.1).该漏洞的 WordPress 扫描工具也在很多论坛和网站发布出来.工具可以利用 WordPress 漏洞来进行扫描,也可以发起DDoS 攻击.经过测试,漏洞影响存在 xmlrpc.php 文件的全部版本. 最近我也遇到了大规模的wordpress后台(wp-login.php)爆破,wordpress差…
WAF介绍 什么是WAF? Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 基本/简单绕过方法: 1.注释符 http://www.site.com/index.php?page_id=-15 /*!UNION*/ /*!SELECT*/ 1,2,3,4…. 2.使用大小写 http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4…. 3.结合前面两种方法 http://…
C++ 面向对象的一大特性就是封装,使用不同的访问控制符来控制外接对其的访问权限.比如: 1 class A 2 { 3 public: 4 A(): i(10){} 5 void print(){ cout << "A::i = " << i << endl; } 6 7 private: 8 int i; 9 }; 这里的A 类对象的 i 对外接来说就是透明的.通过private 来隐藏对象的某些属性.但是,C++也继承了大部分C的特性,比如说很…
C++ 面向对象的一大特性就是封装,使用不同的访问控制符来控制外接对其的访问权限.比如: class A { public: A(): i(){} void print(){ cout << "A::i = " << i << endl; } private: int i; }; 这里的A 类对象的 i 对外接来说就是透明的.通过private 来隐藏对象的某些属性.但是,C++也继承了大部分C的特性,比如说很好很强大的指针.利用指针,我们可以绕过编…
描述: 城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒.城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉.问对于给定的一种状态,最多能够修建几个堡垒. 输入: 每个测例以一个整数n(1<=n<=4)开始,表示城堡的大小.接下来是n行字符每行n个,‘X’表示该位置是墙,‘.’表示该位置是空格.n等于0标志输入结束. 输出: 每个测例在单独的一行输出一个整…
本文作者:非主流 测试文件的源码如下: 我们先直接加上单引号试试: http://192.168.0.20/conn.asp?id=1%27 很好,没有报错.那我们继续,and 1=1 和and 1=2,被拦截了.这个时候,我们可以看看到底是什么规则,发现每一个单独提交都不被拦截,组合到一起便被拦截了,好,那我们变通一下,用+代替空格 不再被拦截,Gogogo. http://192.168.0.20/conn.asp?id=1+and+1=@@version看看当前数据库的版本 http://…
1. 介绍 2017年3月,长亭安全研究实验室(Chaitin Security Research Lab)参加了 Pwn2Own 黑客大赛,我作为团队的一员,一直专注于 VMware Workstation Pro 的破解,并成功在赛前完成了一个虚拟机逃逸的漏洞利用.(很不)幸运的是,就在 Pwn2Own 比赛的前一天(3月14日),VMware 发布了一个新的版本,其中修复了我们所利用的漏洞.在本文中,我会介绍我们从发现漏洞到完成利用的整个过程.感谢@kelwin 在实现漏洞利用过程中给予的…
F. Treeland Tour time limit per test 5 seconds memory limit per test 256 megabytes input standard input output standard output The "Road Accident" band is planning an unprecedented tour around Treeland. The RA fans are looking forward to the eve…
简介 许多现实中对于网站的攻击往往是由于网站没有及时更新或者对于用户的输入没有进行检查.从缓冲区溢出说起,这样一种针对系统脆弱性的威胁,最根本的问题还是在于对于用户的输入没有进行检查.作为主要威胁之一的SQL注入带来了人们对于其应用和数据库的担忧.这个问题的出现有十年的时间了,但是现在仍旧在许多网站中出现.SQL注入就像许多当前主要的的web应用安全攻击问题也被划归在了对于用户输入的检查上. 正文 许多web开发者并不知道SQL语句能够被自定义(handle)并且假定SQL语句是一个让人信任的命…
转:https://zhuanlan.zhihu.com/p/27733895?utm_source=tuicool&utm_medium=referral 小结: vmware通过Backdoor实现了虚拟机和宿主机的通信.vmware有一个开源项目open-vm-tools,里面包含了具体实现方式. 远程过程调用接口RPCI(Remote Procedure Call Interface,实现虚拟机向主机发送命令执行)是基于Backdoor机制实现,其在version3和4的DND/CP中均…
在Moctf中看到一道题目: <?php show_source(__FILE__); $c="<?php exit;?>"; @$c.=$_POST['c']; @$filename=$_POST['file']; if(!isset($filename)) { file_put_contents('tmp.php', ''); } @file_put_contents($filename, $c); include('tmp.php'); ?> 这里简单分析…
测试环境 php 5.4.5 0x01 利用系统组件绕过 1.window com组件(php 5.4)(高版本扩展要自己添加) (COM组件它最早的设计意图是,跨语言实现程序组件的复用.) 测试: <?php $command=$_GET['a']; $wsh = new COM('WScript.shell'); // 生成一个COM对象 Shell.Application也能 $exec = $wsh->exec("cmd /c".$command); //调用对象方…