在分析koadic渗透利器时,发现它有一个注入模块,其DLL注入实现方式和一般的注入方式不一样.搜索了一下发现是由HarmanySecurity的Stephen Fewer提出的ReflectiveDLL Injection. 由于目前互联网上有关这个反射式DLL注入的分析并不多,也没有人分析其核心的ReflectiveLoader具体是怎么实现的,因此我就在这抛砖引玉了. 0×00 引言 常规的DLL注入方式相信大家都很熟悉了,利用CreateRemoteThread这一函数在目标进程中开始一…
0x01 前言 今天看到师傅们发的一篇文章,感觉mysql注入还能这么用,于是自己搭建了一个简单的环境,进行复现. 0x02原理 首先介绍两个mysql函数 hex和conv conv(N,from_base,to_base) conv函数接收一个数字,进行进制转换 如上图就是将25从16进制转化成10进制,我们复原的结果同样也证实了这样的猜想 hex(str) 将str转化成16进制 unhex 复原 所以我们可以通过语句将字符串转换成数字   先将test转换成16进制,再转换成10进制 由…
DLL注入技术之远线程注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等.     远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准备运行的线程,我们可以将LoadLibrary()填入其中,这样就可以执行远程进程中的LoadLibrary()函数…
DLL注入之修改PE静态注入 0x00 前言 我们要注入的的力量功能是下载baidu首页数据.代码如下: #include "stdio.h" #include"stdio.h" #include "windows.h" #include "shlobj.h" #include "Wininet.h" #include "tchar.h" #pragma comment(lib, &qu…
DLL注入技术之REG注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EXE文件中的API),或以被注入EXE的身份去执行一些操作等等.     REG注入原理是利用在Windows 系统中,当REG以下键值中存在有DLL文件路径时,会跟随EXE文件的启动加载这个DLL文件路径中的DLL文件.当如果遇到有多个DLL文件时,需要用逗号或者空格隔开多个DLL文件的路径. HK…
DLL注入技术之依赖可信进程注入 依赖可信进程注入原理是利用Windows 系统中Services.exe这个权限较高的进程,首先将a.dll远线程注入到Services.exe中,再利用a.dll将b.dll远线程注入到待注入进程中.具体过程如下图所示: 这里提供一个小技巧,当注入到Services.exe里的DLL时,想在做完事情后悄无声息的将自己释放掉,在Windows 中有这样的一个API函数FreeLibraryAndExitThread(),它可以把自己卸载掉并且退出线程,具体代码如…
0x00 概述 最近提交了一些关于 docker remote api 未授权访问导致代码泄露.获取服务器root权限的漏洞,造成的影响都比较严重,比如 新姿势之获取果壳全站代码和多台机器root权限 新姿势之控制蜻蜓fm所有服务器 新姿势之获取百度机器root权限 因为之前关注这一块的人并不多,这个方法可以算是一个“新的姿势”,本文对漏洞产生的原因和利用过程进行简单的分析和说明,但因为时间和精力有限,可能会有错误,欢迎大家指出- 0x01 起因 先介绍一些东西- docker swarm do…
本文原创作者:丝绸之路 <img src="http://image.3001.net/images/20150921/14428044502635.jpg!small" title="th.jpg" style="width: 345px; height: 256px;"/></p> DLL劫持漏洞已经是一个老生常谈,毫无新鲜感的话题了.DLL劫持技术也已经是黑客们杀人越货,打家劫舍必备的武器.那么,随着Win10的诞生…
如何在项目中有效的防止SQL注入 写给需要的人,所有的问题源自我们的不重视. 本章略过"什么是SQL注入","如何去利用SQL注入"的讲解,仅讲如何去防御 PS在这里讲的不是Postscript 来自 E序列 技术支持小组 贾少雄(360企业安全) 联合编辑 本项目涉及的技术 ORM框架:Mybatis/Hibernate(HQL)/Spring Data-JPA(JPQL) 目录 事前须知 SQL注入的产生 PreparedStatement 正则表达式过滤和筛选…
0x00 知识点 二次注入流程分析 二次注入漏洞在CTF中常见于留言板和注册登录功能,简单来说可以分为两个步骤: 插入恶意数据(发布帖子,注册账号),用mysql_escape_string()函数对恶意字符进行转义,但是再将数据写入数据库中的时候又保留了原来的数据. 引用插入的恶意数据:在进行查询时,直接从数据库中引用恶意数据,没有做进一步过滤和检验. bypass information_schema 参考文章:https://www.anquanke.com/post/id/193512…
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Python 给Python加速 寻找方向 Jython? Python->Native代码 整体思路 实际动手 关键问题 import的问题 Python GIL问题 测试效果 总结 需求背景 进击的Python 随着人工智能的兴起,Python这门曾经小众的编程语言可谓是焕发了第二春. 以tensorfl…
常见注入手法第二讲,APC注入 转载注明出处 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSDN中的解释,异步过程调用,属于是同步对象中的函数,所以去同步对象中查看. 首先介绍一下APC,会了正想开发就会逆向注入 首先第一个函数 QueueUserApc: 函数作用,添加制定的异步函数调用(回调函数)到执行的线程的APC队列中 APCproc: 函数作用: 回调函数的写法. 我们首先要知道异步函数调用的原理, 异步过程调用是一种能在特定线程环境中异步执…
在vue项目实际开发中我们经常会使用props和emit来进行子父组件的传值通信,父组件向子组件传递数据是通过prop传递的, 子组件传递数据给父组件是通过$emit触发事件来做到的.例如: Vue.component('child',{ data(){ return { mymessage:this.message } }, template:` <div> <input type="text" v-model="mymessage" @inpu…
3.Web安全基础 3.1.HTTP协议 1)TCP/IP协议-HTTP 应用层:HTTP.FTP.TELNET.DNS.POP3 传输层:TCP.UDP 网络层:IP.ICMP.ARP 2)常用方法-Method GET:向特定的资源发出请求 POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件).数据被包含在请求体中.POST请求可能会导致新的资源的建立和/或已有资源的修改. HEAD:向服务器索与GET请求相一致的响应,只不过响应体将不会被返回.这一方法可以在不必传输整个响应…
原文:NET Core 3.0 AutoFac替换内置DI的新姿势 .NET Core 3.0 和 以往版本不同,替换AutoFac服务的方式有了一定的变化,在尝试着升级项目的时候出现了一些问题. 原来在NET Core 2.1时候,AutoFac返回一个 IServiceProvider 参数注入到ConfigureServices .NET Core 服务中,基本大痣是这样做的. 首先我们需要一个重写 Autofac.Module 的方法,这将用于将我们 Register [数据访问层] 以…
sql注入--双查询报错注入 背景:在sqli-labs第五关时,即使sql语句构造成功页面也没有回显出我们需要的信息,看到了有使用双查询操作造成报错的方式获得数据库信息,于是研究了一下双查询的报错原理,总结了探索的过程,整理出此文希望可以帮到感兴趣的人. sqli-labs闯关游戏下载地址:https://github.com/Audi-1/sqli-labs 双查询报错注入 需用到四个函数和一个group by语句: group by ... --->分组语句 //将查询的结果分类汇总 ra…
原文:https://www.cnblogs.com/artech/p/net-core-di-03.html IoC主要体现了这样一种设计思想:通过将一组通用流程的控制权从应用转移到框架中以实现对流程的复用,并按照“好莱坞法则”实现应用程序的代码与框架之间的交互.我们可以采用若干设计模式以不同的方式实现IoC,比如我们在<依赖注入[2]: 基于IoC的设计模式>介绍的模板方法.工厂方法和抽象工厂,接下来我们介绍一种更为有价值的IoC模式,即依赖注入(DI:Dependency Injecti…
目录 SQL注入 什么是SQL注入? 掌握SQL注入之前需要了解的知识点 SQL注入情况流程分析 有完整的回显报错(最简单的情况)--检索数据: 在HTTP报文中利用注释---危险操作 检索隐藏数据: SQL注入导致逻辑漏洞 SQL注入重点--盲注! 通过触发条件响应来实现SQL盲注 通过触发布尔错误实现SQL盲注--布尔盲注 通过触发时间延迟实现SQL盲注--时延盲注 通过OAST进行盲注--最终大招 双注入 SSRF 攻击 什么是SSRF攻击? 常见SSRF攻击情况 针对服务器本身的SSRF…
问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.具体步骤: 1.首先导入java.sql.*:这个包. 2.然后加载驱动,创建连接,得到Connection接口的的实现对象,比如对象名叫做conn. 3.然后再用conn对象去创建Statement的实例,方法是:Statement stmt = conn…
创建DLL: 先声明导出函数:使用__declspec(dllexport) #include"DLLSample.h" #ifndef _DLL_SAMPLE_H #define _DLL_SAMPLE_H //如果定义了C++编译器,那么声明为C链接方式, //否则编译后的函数名为?TestDLL@@YAXXZ,而并不是TestDLL //则不能通过GetProcAddress()获取函数名,因为无法知道DLL编译后的函数名 //******* //如果编译时用的C方式导出函数,则…
FJNU 1159 Fat Brother’s new way(胖哥的新姿势) Time Limit: 1000MS   Memory Limit: 257792K [Description] [题目描述] I bet, except Fat Brothers, all of you don’t like strange way to show integers , he is really like this way to showing integers: 1 -> ‘A’ 2 -> ‘B…
Win32Util.dll: Can't load 32-bit .dll on a AMD 64 bit platform 解决办法:将该工程设置成JDK为32位的 ,我设成1.6的32位不能用,因为TestNG要用jdk1.7,于是我下了个1.7.6的jdk32位,将该工程设置成这个就ok了 解决问题启发来自:http://www.cnblogs.com/Flint/p/4951703.html 2)在PATH中添加sikuli x下libs路径. 如果没有设置,在运行时,会出现如下提示:G…
下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btnEnableTouch: TButton; btnDi…
如果你有a.dll和a.lib,两个文件都有的话可以用静态加载的方式: message函数的声明你应该知道吧,把它的声明和下面的语句写到一个头文件中 #pragma comment(lib, "a.lib") 然后你的对话框.cpp中包含这个头文件就可以使用message函数了. 如果dll没有对应的.lib文件,那么就只能使用动态加载的方式了.动态调用动态库步骤:1.创建一个函数指针,其指针数据类型要与调用的DLL引出函数相吻合.2.通过Win32 API函数LoadLibrary(…
最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 "无法加载 DLL"D:\11\1.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). "这个错误.但是我在本地xp系统上调试是可以的. dll使用com调用如下 [DllImport(@"D:\11\1.dll", EntryPoint = "aaa", CharSet…
问题一:Statement和PreparedStatement的区别 先来说说,什么是java中的Statement:Statement是java执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.具体步骤: 1.首先导入java.sql.*:这个包. 2.然后加载驱动,创建连接,得到Connection接口的的实现对象,比如对象名叫做conn. 3.然后再用conn对象去创建Statement的实例,方法是:Statement stmt = conn…
sikuli运行出现问题:Win32Util.dll: Can't load 32-bit .dll on a AMD 64 bit platform 在64位平台上无法加载32位的dll文件 解决办法:将该工程设置成JDK为32位的 之前eclipse中默认加载的是64位jdk .但由于eclipse中TESTNG需要用到1.7 jdk .为保证在解决问题后,testNG还能正常使用.所以原博主是下了个32位  1.7 jdk,将该工程设置成这个就ok了 解决问题启发来自: http://ww…
转自:https://blog.daliansky.net/Broadcom-BCM94352z-DW1560-drive-new-posture.html Broadcom WiFi/BlueTooth BCM94352z(DW1560)驱动新姿势[新方法] 引言 昨晚口袋妖怪进群闲聊的时候提到过 她 之前维护的BrcmWLFixup已被 AirportBrcmFixup 取代.同时 她 发给我的AirportBrcmFixup/kern_brcmfx.cpp源码中已经增加了包括 _si_pm…
最近需要在C#下调用一个c++ dll库,不管怎样dllimport就是报错找不到该dll文件,路径.函数名称.参数.dllimport参数逐个检查确认无误也无济于事,无奈想用其他语言调用试试,由于是c++的dll照理用c++试最好了,这点事用masm32开发简单快捷就用masm32写了个调用小程序,这其中有个修饰名问题需要注意.使用dumpbin 命令查看c++ dll发现使用的是默认修饰名__cdecl,关于masm32怎样调用c++最简单就是在c++里使用 extern “c”,可惜这个d…
[sql注入]浅谈sql注入中的Post注入 本文来源:i春秋学院 00x01在许多交流群中,我看见很多朋友对于post注入很是迷茫,曾几何,我也是这样,因为我们都被复杂化了,想的太辅助了所以导致现在感觉到难,现在,就让我们一起来谈谈,post注入是多么的轻松吧!PS:文中有写os-shell00x02测试站点:http://xxx.xxxxx.com/对于我来说,post注入无非有两种方法第一种利用burp抓包然后使用sqlmap -r 来进行检测注入第二种比较简单,直接使用sqlmap --…