首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TeamsSix的网络空间安全专栏

    代码审计 | 命令注入代码注入

    0x02 代码注入 1、介绍 代码注入因为是直接注入一段代码,因此要比命令注入更加灵活,危害性也更大。 这里以 Apache Commons collections 组件为例。 Apache Commons collections 组件 3.1 版本有一段利用反射来完成特定功能的代码,控制相关参数后,就可以进行代码注入。 这里攻击者可以利用反序列化的方式控制相关参数,完成注入代码,达到执行任意代码的效果。 运行一下代码,可以看到成功弹出计算器 这里只是实现了无回显的利用方式,接下来就利用代码注入实现有回显的利用。 ---- 往期推荐 代码审计 | SQL 注入 代码审计 | Java Web 过滤器 - filter 代码审计 | Java Web 核心技术 - Servlet 参考链接: https://

    1.8K20编辑于 2022-09-20
  • 来自专栏TeamsSix的网络空间安全专栏

    代码审计 | 模板注入

    0x00 介绍 这里主要学习下 FreeMarker 模板注入,FreeMarker 是一款模板引擎,FreeMarker 模板文件与 HTML 一样都是静态页面,当用户访问页面时,FreeMarker </body> </html> 0x02 模板注入利用 1、new 函数的利用 FreeMarker 中预制了大量了内建函数,其中 new 函数可以创建一个继承自 freemarker.template.TemplateModel 类的变量,利用这一点能达到执行任意代码的目的。 利用方法一: freemarker.template.utility 里有个 Execute 类,通过观察源代码里的第 30 行可以看到这个类会调用 Runtime.getRuntime().exec ---- 往期推荐 代码审计 | 表达式注入 代码审计 | 命令注入代码注入 代码审计 | SQL 注入 参考文章: https://www.anquanke.com/post/id/215348

    1.6K10编辑于 2022-09-20
  • 来自专栏TeamsSix的网络空间安全专栏

    代码审计 | SQL 注入

    但开发有时为了便利,会直接采取拼接的方式构造 SQL 语句,这样一来依然会存在 SQL 注入,如下代码所示。 作为占位符,填入的字段的值就会进行严格的类型检查,就可以有效的避免 SQL 注入的产生,如下代码所示。 1、MyBatis 框架 MyBatis 的思想是将 SQL 语句编入配置文件中,避免 SQL 语句在代码中大量出现,方便对 SQL 语句的修改和配置。 HQL 和 SQL 的区别: HQL 注入和 SQL 注入的成因都一样,使用拼接 HQL 语句的写法可能会导致 SQL 注入 Query query = session.createQuery("from ---- 往期推荐 代码审计 | Java Web 过滤器 - filter 代码审计 | Java Web 核心技术 - Servlet 代码审计 | Java EE 基础知识 参考文章: https

    1.4K20编辑于 2022-09-20
  • 来自专栏黑伞安全

    代码审计(二)——SQL注入代码

    正常情况下,这种网站内部直接发送的SQL请求不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 SQL语句,如果用户输入的数据被构造成恶意 SQL 代码,Web 应用又未对动态构造的 SQL SQL操作类 Select……, mysql_query… 文件操作类 Move_uploaded_file,copy,/upload/等 命令执行类 System,popen等常见的系统命令做关键词 代码执行类 正则快速查询 通过一些查询语句的特征,用正则匹配源代码中的SQL语句所在位置 3. 辅助工具 使用Seay源代码审计系统的自动审计功能来辅助我们快速找到SQL注入可能存在的位置。 4. where.*=\{ 根据代码上下文审计是否存在漏洞。 下图中,id参数直接进行了拼接,有可能存在SQL注入的,这里是两处sql执行操作一处是select,一处是update。 有关SQL注入代码审计的内容到此就告一段落了,下一课将给大家带来更多漏洞的代码审计讲解,敬请期待~ 待续

    7.6K20编辑于 2022-01-26
  • 来自专栏PHP专享栏

    PHP代码审计注入漏洞

    命令注入就是通过利用无验证变量构造特殊语句对服务器进行渗透. 注入的种类有很多,而不仅仅是SQL Injection. php常见注入有以下几种 ? 命令注入 (Command Injection) Eval注入(Eval Injection) 客户端脚本攻击(Script Injection) 跨网站脚本攻击(Cross Site Scripting ,XSS) SQL注入攻击(SQL Injection) 动态函数注入攻击(Dynamic Variable Evaluation) 序列化注入 & 对象注入 php中一般用5个函数来执行外部的应用程序或函数 对搜素到的代码双击即可进入指定的代码段,我们可以结合代码段的上下文来分析具体逻辑. ? 我们可以看到. 代码中并没有对$target进行过滤.直接接收POST数据然后拼接到了代码里. ? 由此我们基本可以确定是存在注入漏洞的.进行手动验证.. ? ? 通过验证得知. 注入漏洞确实存在.接下来我们就需要做相应的修复.

    1.8K10发布于 2019-10-24
  • 来自专栏黑战士安全

    代码注入(web安全入门)

    一、原理以及成因php 代码执行(注入)是指应用程序过滤不严,用户可以 http 通过请求将代码注入到应用中执行。 代码执行(注入)类似于 SQL 注入漏洞,SQLi 是将 SQL 语句注入到数据库中执行,而代码执行则是可以把代码注入到应用中最终由服务器运行它。 测试代码如下<? 如果使用的话一定要进行严格的过滤3、preg_replace 放弃使用/e 修饰符4、修改配置文件 php.ini disable_functions=assert实战:海洋 Seacmsv6.26 系统存在代码注入漏洞漏洞点 searchtype=5&tid=&area=phpinfo()]6.53 6.54 6.55 都存在代码注入漏洞

    1.6K00编辑于 2022-12-30
  • 来自专栏Java项目实战

    代码审计--SQL注入详解

    而其中,SQL注入攻击是一种常见且危险的攻击手段,攻击者通过在Web应用程序中注入恶意SQL代码,从而获取敏感信息、窃取数据库内容甚至控制整个系统。为了保障应用程序的安全性,进行代码审计是必要的一环。 本文将详细介绍SQL注入攻击的原理、分类,以及如何进行代码审计以防范此类攻击。 一、SQL注入攻击的原理1.1 SQL注入的概念SQL注入是指攻击者通过在Web应用程序中注入恶意的SQL代码,从而获取未授权的数据或执行非法操作的一种安全漏洞。 三、代码审计中防范SQL注入攻击的技术措施3.1 输入验证在代码审计过程中,对于用户的输入参数,应该进行充分的验证,包括对类型、长度、格式以及字符编码等的检查,避免恶意注入。 四、代码审计中常见的SQL注入漏洞案例五、代码审计工具和技术5.1 静态代码分析工具静态代码分析工具可以自动进行代码扫描,发现潜在的注入漏洞。

    91120编辑于 2023-06-30
  • 来自专栏网络空间安全

    Java代码审计 -- SQL注入

    ,下面将会在代码的层面展示为什么预编译能够防止SQL注入,同时解释为什么会多出一个转义符 不安全的预编译 拼接 总所周知,sql注入之所以能被攻击者利用,主要原因在于攻击者可以构造payload,虽然有的开发人员采用了预编译但是却由于缺乏安全思想或者是偷懒会直接采取拼接的方式构造 SQL语句,此时进行预编译则无法阻止SQL注入的产生 代码(稍稍替换一下上面的代码): //创建sql语句 String sql = "SELECT * FROM users WHERE username 占位符后,又对语句进行拼接,也会导致SQL注入 想要做到阻止sql注入,首先要做到使用? 语句时是无法使用预编译的,原因是order by子句后面需要加字段名或者字段位置,而字段名是不能带引号的,否则就会被认为是一个字符串而不是字段名,然而使用PreapareStatement将会强制给参数加上',我在下面会在代码层面分析为什么会这样处理参数 needsHexEscape = true后直接break掉循环,然后直接返回needsHexEscape [clipboard.png] 向上返回到了setString方法,经过if判断后运行if体里面的代码

    1.9K20编辑于 2022-01-23
  • PHP SQL 注入代码审计

    代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 : 该方式明显会被注入,没啥可说的。 > 输入框中的注入: <! DOCTYPE html> <html lang="en"> <head> <meta charset="utf8"> <title>SQL 注入测试代码</title> </head> DOCTYPE html> <html lang="en"> <head> <meta charset="utf8"> <title>SQL 注入测试代码</title> </head>

    3.6K10编辑于 2022-12-28
  • 来自专栏终有链响

    代码如何注入钩子

    引言 相信大家都不想自己的代码被人拿出去做一些商业化的行为,但是一时半会又没有一个有效的方法,这里我提供一点思路。 常用的钩子程序植入方式 方式 解释 使用难度 描述 植入通知程序(直接植入) 使用APi调用接口形式通知远程服务端程序,告知代码被部署了 最简单 直接在源码里 源代码内植入通知程序 (使用pom依赖) 使用APi调用接口形式通知远程服务端程序,告知代码被部署了 较难 把通知程序再隐藏一层,到jar层面 源代码内植入通知程序 (使用pom依赖基础上加密混淆源代码) 使用APi调用接口形式通知远程服务端程序 ,告知代码被部署了 最难 这种一般在方式二的基础上写好钩子程序,会请专业的安全团队来扫描,确保无法发现(可以发散一下思维-市场上有些开源源码为什么有个协议不可商用) 钩子程序,以maven项目为例子

    41110编辑于 2024-07-29
  • 来自专栏MasiMaro 的技术博文

    Windows下的代码注入

    想要将代码注入到其他进程并能成功执行需要解决两个问题: 第一个问题是如何让远程进程执行注入代码。 要进行远程代码注入的要点和难点主要就是这两个问题,下面给出两种不同的注入方式来说明如何解决这两个问题 DLL注入 DLL注入很好的解决了第二个问题,DLL被加载到目标进程之后,它里面的代码中的地址就会自动被转化为对应进程中的地址 ,所以将注入代码写到这个事件中,这样就能执行注入代码了。 例如我们想在目标进程中注入一段代码,让它弹出一个对话框,以便测试是否注入成功。 DLL注入的另一个区别是,不使用DLL注入的时候需要自己加载目标代码到对应的进程中,这个操作可以借由WriteProcessMemory 将函数代码写到对应的虚拟内存中。

    1.6K20发布于 2018-10-10
  • 来自专栏F12sec

    SCMS代码审计-SQL注入

    scms5.0存在sql注入 存在问题脚本:s-cms/function/form.php $action接受input的参数 如果x>0则执行下面的语句,这里 用内联注释组合既可构造语句为:/function

    1.6K20编辑于 2022-09-29
  • 来自专栏iOS开发干货分享

    iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全的问题。 那么应用安全的问题涉及到很多方面。 比如防止静态分析的,代码混淆、逻辑混淆;防止重签名的,应用ID检测、甚至是代码的HASH检测等等。那么这篇文章我想聊聊关于代码注入检测,因为发现随着iOS系统的更新,我们防护的手段发生了一些变化。 代码注入的方式 代码注入的方式大致分为两种 越狱注入:通过修改DYLD_INSERT_LIBRARIES 环境变量的值,来插入动态库并执行 非越狱注入: 直接将自定义的Framwork或者dylib库打包进入 cmdsize); } return false; } 所以通过添加Other Linker Flags 在MachO中设置RESTRICT段赋值为restricted可以用来防护越狱的代码注入 37.285 antiInject[7482:630392] /Library/MobileSubstrate/MobileSubstrate.dylib 白名单检测 那么上面的检测只可以检测越狱环境中的代码注入

    2.4K50发布于 2019-01-11
  • 来自专栏iOS开发干货分享

    iOS应用代码注入防护

    比如防止静态分析的,代码混淆、逻辑混淆;防止重签名的,应用ID检测、甚至是代码的HASH检测等等。那么这篇文章我想聊聊关于代码注入检测,因为发现随着iOS系统的更新,我们防护的手段发生了一些变化。 代码注入的方式 代码注入的方式大致分为两种 越狱注入:通过修改DYLD_INSERT_LIBRARIES 环境变量的值,来插入动态库并执行 非越狱注入: 直接将自定义的Framwork或者dylib库打包进入 我们可以通过检索DYLD_INSERT_LIBRARIES定位到_main函数加载插入动态库的代码如下. 所以通过添加Other Linker Flags 在MachO中设置RESTRICT段赋值为restricted可以用来防护越狱的代码注入. 37.285 antiInject[7482:630392] /Library/MobileSubstrate/MobileSubstrate.dylib 白名单检测 那么上面的检测只可以检测越狱环境中的代码注入

    1.1K20编辑于 2023-03-19
  • 来自专栏Ms08067安全实验室

    最新堆叠查询注入攻击和注入代码分析技术

    堆叠查询注入攻击 堆叠查询注入攻击的测试地址在本书第2章。 堆叠查询可以执行多条语句,多语句之间以分号隔开。堆叠查询注入就是利用这个特点,在第二个SQL语句中构造自己要执行的语句。 这里可以使用Boolean注入、时间注入,也可以使用另一种注入方式——堆叠注入。 图4-44 堆叠查询注入代码分析 在堆叠查询注入页面,程序获取GET参数ID,使用PDO的方式进行数据查询,但仍然将参数ID拼接到查询语句中,导致PDO没起到预编译的效果,程序仍然存在SQL注入漏洞 ,代码如下: <? ord(substring(user(),1,1))=114,sleep (3),1);# 此时,SQL语句分为两条,第一条为 SELECT * FROM users where `id` = '1' 是代码自己的

    57130编辑于 2023-09-26
  • 来自专栏农夫安全

    代码审计之SQL注入漏洞

    SQL注入: 我的理解很简单,能代入到数据库查询,且没有过滤,或过滤不严谨,就可以造成SQL注入 演示环境:linux+apache+mysql+php DVWA 首先还是从低级开始 通过代码可以看到id是字符型代入到数据库中查询的,而mysql就有自动转换类型的这个特性. 所以你输入的 1 and 1=1 or 1 and 1=2,他只解析了1. 成功注入 中级: ? 这里值得注意的就是:mysqli_real_escape_string函数 ? 提交的那个页面代码我没看,不过我想应该是吧输入的id的值保存到session里面,到注入页面里面去使用,有空的可以自己研究研究 代码层面又变成了一个字符型的注入,和GET基本上就没差别了,只是构造语句的地方不一样了而已 这里就不需要转码了哈,他不是走url的,你转码了反而报错 成功注入:完美的操作 ?

    1.6K70发布于 2018-03-30
  • 来自专栏谢公子学安全

    JNDI注入工具代码结构分析

    THE SPRING EQUINOX JNDI注入工具代码结构分析 该文章首发于Sec-IN,文章链接:https://www.sec-in.com/article/1632 工具链接:https://

    1.3K30编辑于 2022-04-18
  • 来自专栏洛米唯熊

    程序员疫苗:代码注入

    先向大家介绍第一注疫苗——代码注入。 Shell注入 我们先来看一段perl的代码: use CGI qw(:standard); $name = param('name'); $nslookup = "/path/to/nslookup" 跨网站脚本注 入 跨网站脚本(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。 它通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。 XSS攻击在论坛的用户签档里面(使用img标签)也发生过很多次,包括像一些使用bcode的网站,很有可能会被注入一些可以被浏览器用来执行的代码。包括CSS都有可能被注入javascript代码

    97740发布于 2019-07-25
  • 来自专栏進无尽的文章

    编码篇-低耦合代码注入

    方案 使用 继承,在父类的 viewWillAppear 中写入相关的代码即可,如果是新项目自然是可以的。 使用代码注入 就是传说中的 Runtime - Method Swizzling。 由于 swizzling 改变了全局的状态,dispatch_once能保证在不同的线程中也能确保代码只执行一次。

    74320发布于 2018-09-12
  • 来自专栏HelloCode开发者学习平台

    iOS的应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能,代码健壮相关的问题,我们有时还需要考虑到应用安全的问题。 那么应用安全的问题涉及到很多方面。 比如防止静态分析的,代码混淆,逻辑混淆;防止重签名的,应用ID检测,甚至是代码的HASH检测等等那么这篇文章我想聊聊关于代码注入检测,因为发现随着iOS的系统的更新,我们防护的手段发生了一些变化。 代码注入的方式 代码注入的方式大致分为两种 越狱注入:修改通过DYLD_INSERT_LIBRARIES环境变量的值,来插入动态库并执行 非越狱注入: 直接将自定义的Framwork或者dylib库打包进入 所以通过添加其他链接器标志在MachO中设置RESTRICT段赋值为限制可以用来防护越狱的代码注入。 但是新版的dyld源码中去掉了__RESTRICT检测。 那么一旦为自己的应用写入插件时,我们就可以看到控制台的输出 白名单检测 那么上面的检测只可以检测越狱环境中的代码注入,在非越狱环境中,逆向工程师可以利用yololib工具注入动态库。

    1.2K20编辑于 2023-03-23
领券