├── attackapp ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-anydpi-v33 │ │ │ │ └── ic_launcher.xml │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ ├── strings.xml │ │ │ │ └── themes.xml │ │ │ ├── drawable │ │ │ │ ├── home.xml │ │ │ │ ├── refresh.xml │ │ │ │ ├── help.xml │ │ │ │ ├── user.xml │ │ │ │ ├── region.xml │ │ │ │ ├── share.xml │ │ │ │ ├── settings.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── layout │ │ │ │ ├── layout_toobar_.xml │ │ │ │ ├── item_vulnerability.xml │ │ │ │ ├── activity_unimpl_comp.xml │ │ │ │ ├── activity_denial_service.xml │ │ │ │ ├── activity_improper_uri.xml │ │ │ │ ├── activity_directory_traversal.xml │ │ │ │ ├── header_nav.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_webview_attack.xml │ │ │ │ └── activity_db.xml │ │ │ ├── menu │ │ │ │ ├── menu_toobar.xml │ │ │ │ └── menu_nav.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ └── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── forgo7ten │ │ │ │ └── attackapp │ │ │ │ ├── model │ │ │ │ └── Vulnerability.kt │ │ │ │ ├── attack │ │ │ │ ├── denialservice │ │ │ │ │ ├── Some.kt │ │ │ │ │ └── DenialServiceActivity.kt │ │ │ │ ├── unimplcomp │ │ │ │ │ └── UnimplCompActivity.kt │ │ │ │ ├── provider_directory_traversal │ │ │ │ │ └── DirectoryTraversalActivity.kt │ │ │ │ ├── improperuriauthorization │ │ │ │ │ └── ImproperUriActivity.kt │ │ │ │ └── webview │ │ │ │ │ └── WebviewAttackActivity.kt │ │ │ │ ├── App.kt │ │ │ │ ├── utils │ │ │ │ └── FileUtils.kt │ │ │ │ ├── ConstValue.kt │ │ │ │ └── view │ │ │ │ ├── adapter │ │ │ │ └── VulnerabilitiesAdapter.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── DbActivity.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── forgo7ten │ │ │ └── attackapp │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── forgo7ten │ │ └── attackapp │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── vulnerableapp ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-anydpi-v33 │ │ │ │ └── ic_launcher.xml │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ ├── strings.xml │ │ │ │ └── themes.xml │ │ │ ├── drawable │ │ │ │ ├── home.xml │ │ │ │ ├── refresh.xml │ │ │ │ ├── help.xml │ │ │ │ ├── user.xml │ │ │ │ ├── region.xml │ │ │ │ ├── share.xml │ │ │ │ ├── settings.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ ├── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ │ ├── layout │ │ │ │ ├── layout_toobar.xml │ │ │ │ ├── item_vulnerability.xml │ │ │ │ ├── activity_webview.xml │ │ │ │ ├── header_nav.xml │ │ │ │ ├── activity_vulnerability_show.xml │ │ │ │ ├── activity_denial_service.xml │ │ │ │ ├── activity_main.xml │ │ │ │ └── activity_mitm.xml │ │ │ ├── menu │ │ │ │ ├── menu_toobar.xml │ │ │ │ └── menu_nav.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ └── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── forgo7ten │ │ │ │ └── vulnerableapp │ │ │ │ ├── view │ │ │ │ ├── BaseActivity.kt │ │ │ │ ├── adapter │ │ │ │ │ └── VulnerabilitiesAdapter.kt │ │ │ │ └── MainActivity.kt │ │ │ │ ├── model │ │ │ │ └── Vulnerability.kt │ │ │ │ ├── App.kt │ │ │ │ ├── vulnerabilities │ │ │ │ ├── VulnerabilityShowActivity.kt │ │ │ │ ├── VulnerabilityActivity.kt │ │ │ │ ├── StartActivity.kt │ │ │ │ ├── denialservice │ │ │ │ │ └── DenialServiceActivity.kt │ │ │ │ ├── provider_directory_traversal │ │ │ │ │ └── DirectoryTraversalProvider.kt │ │ │ │ ├── improperuriauthorization │ │ │ │ │ └── ImproperProvider.kt │ │ │ │ ├── webview │ │ │ │ │ └── WebviewActivity.kt │ │ │ │ └── mitm │ │ │ │ │ └── MitmActivity.kt │ │ │ │ ├── MyDbHelper.kt │ │ │ │ └── ConstValue.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── forgo7ten │ │ │ └── vulnerableapp │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── forgo7ten │ │ └── vulnerableapp │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── .idea ├── .gitignore ├── dictionaries │ └── Palmer.xml ├── codeStyles │ ├── codeStyleConfig.xml │ └── Project.xml ├── compiler.xml ├── vcs.xml ├── misc.xml ├── deploymentTargetDropDown.xml └── gradle.xml ├── assets └── link.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle ├── README.md ├── gradle.properties ├── gradlew.bat ├── gradlew └── LICENSE /attackapp/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /vulnerableapp/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /assets/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/assets/link.png -------------------------------------------------------------------------------- /.idea/dictionaries/Palmer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/attackapp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Forgo7ten/VulnerableApp/HEAD/vulnerableapp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /attackapp/src/main/java/com/forgo7ten/attackapp/model/Vulnerability.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp.model 2 | 3 | class Vulnerability(val name: String, val targetActivity: Class<*>) { 4 | } -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /attackapp/src/main/java/com/forgo7ten/attackapp/attack/denialservice/Some.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp.attack.denialservice 2 | 3 | /** 4 | * @ClassName Some 5 | * @Description // 一个序列化对象,也可使用Parcelable 6 | * @Author Forgo7ten 7 | **/ 8 | class Some : java.io.Serializable { 9 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 12 12:22:38 CST 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/java/com/forgo7ten/vulnerableapp/view/BaseActivity.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.vulnerableapp.view 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | 6 | 7 | open class BaseActivity : AppCompatActivity() { 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | } 11 | } -------------------------------------------------------------------------------- /attackapp/src/main/res/mipmap-anydpi-v33/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/java/com/forgo7ten/vulnerableapp/model/Vulnerability.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.vulnerableapp.model 2 | 3 | /** 4 | * @ClassName Vulnerability 5 | * @Description // 漏洞实例 6 | * @Author Forgo7ten 7 | **/ 8 | class Vulnerability(val name: String, val level: String, val descHtml: String, val targetActivity: Class<*>) { 9 | val title:String 10 | get() = "$name($level)" 11 | } -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/mipmap-anydpi-v33/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /attackapp/src/main/java/com/forgo7ten/attackapp/App.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp 2 | 3 | import android.app.Application 4 | 5 | /** 6 | * @ClassName App 7 | * @Description // 全局App 8 | * @Author Forgo7ten 9 | **/ 10 | class App() : Application() { 11 | override fun onCreate() { 12 | super.onCreate() 13 | // 保存全局Context 14 | ConstValue.appContext = this 15 | ConstValue.initVulnerabilities() 16 | } 17 | } -------------------------------------------------------------------------------- /attackapp/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /attackapp/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/java/com/forgo7ten/vulnerableapp/App.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.vulnerableapp 2 | 3 | import android.app.Application 4 | 5 | /** 6 | * @ClassName App 7 | * @Description // 全局App 8 | * @Author Forgo7ten 9 | **/ 10 | class App() : Application() { 11 | override fun onCreate() { 12 | super.onCreate() 13 | // 保存全局Context 14 | ConstValue.appContext = this 15 | ConstValue.initVulnerabilities() 16 | } 17 | } -------------------------------------------------------------------------------- /attackapp/src/main/res/drawable/home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/drawable/home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /attackapp/src/test/java/com/forgo7ten/attackapp/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp 2 | 3 | import org.junit.Assert.assertEquals 4 | import org.junit.Test 5 | 6 | /** 7 | * Example local unit test, which will execute on the development machine (host). 8 | * 9 | * See [testing documentation](http://d.android.com/tools/testing). 10 | */ 11 | class ExampleUnitTest { 12 | @Test 13 | fun addition_isCorrect() { 14 | assertEquals(4, 2 + 2) 15 | } 16 | } -------------------------------------------------------------------------------- /vulnerableapp/src/test/java/com/forgo7ten/vulnerableapp/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.vulnerableapp 2 | 3 | import org.junit.Assert.assertEquals 4 | import org.junit.Test 5 | 6 | /** 7 | * Example local unit test, which will execute on the development machine (host). 8 | * 9 | * See [testing documentation](http://d.android.com/tools/testing). 10 | */ 11 | class ExampleUnitTest { 12 | @Test 13 | fun addition_isCorrect() { 14 | assertEquals(4, 2 + 2) 15 | } 16 | } -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /attackapp/src/main/res/layout/layout_toobar_.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | -------------------------------------------------------------------------------- /attackapp/src/main/res/menu/menu_toobar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/layout/layout_toobar.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/menu/menu_toobar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /attackapp/src/main/res/drawable/refresh.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/drawable/refresh.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { url 'https://maven.aliyun.com/repository/public' } 4 | maven { url 'https://maven.aliyun.com/repository/google' } 5 | google() 6 | mavenCentral() 7 | gradlePluginPortal() 8 | } 9 | } 10 | dependencyResolutionManagement { 11 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 12 | repositories { 13 | maven { url 'https://maven.aliyun.com/repository/public' } 14 | maven { url 'https://maven.aliyun.com/repository/google' } 15 | google() 16 | mavenCentral() 17 | } 18 | } 19 | rootProject.name = "VulnerableApp" 20 | include ':vulnerableapp' 21 | include ':attackapp' 22 | -------------------------------------------------------------------------------- /attackapp/src/main/res/menu/menu_nav.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /attackapp/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AttackApp 3 | 攻击测试 4 | Manifest中定义组件未实现 攻击 5 | App通用型拒绝服务漏洞 攻击 6 | ContentProviderURI授权不当漏洞 攻击 7 | ContentProvider文件目录遍历漏洞 攻击 8 | WebView相关漏洞 攻击 9 | 应用克隆漏洞 攻击 10 | 污染Cookie 攻击 11 | webview js2native 攻击 12 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/menu/menu_nav.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 12 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /attackapp/src/main/res/layout/item_vulnerability.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/layout/item_vulnerability.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /attackapp/src/androidTest/java/com/forgo7ten/attackapp/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp 2 | 3 | import androidx.test.ext.junit.runners.AndroidJUnit4 4 | import androidx.test.platform.app.InstrumentationRegistry 5 | import org.junit.Assert.* 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | /** 10 | * Instrumented test, which will execute on an Android device. 11 | * 12 | * See [testing documentation](http://d.android.com/tools/testing). 13 | */ 14 | @RunWith(AndroidJUnit4::class) 15 | class ExampleInstrumentedTest { 16 | @Test 17 | fun useAppContext() { 18 | // Context of the app under test. 19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 20 | assertEquals("com.forgo7ten.attackapp", appContext.packageName) 21 | } 22 | } -------------------------------------------------------------------------------- /attackapp/src/main/res/drawable/help.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/drawable/help.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /vulnerableapp/src/androidTest/java/com/forgo7ten/vulnerableapp/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.vulnerableapp 2 | 3 | import androidx.test.ext.junit.runners.AndroidJUnit4 4 | import androidx.test.platform.app.InstrumentationRegistry 5 | import org.junit.Assert.* 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | /** 10 | * Instrumented test, which will execute on an Android device. 11 | * 12 | * See [testing documentation](http://d.android.com/tools/testing). 13 | */ 14 | @RunWith(AndroidJUnit4::class) 15 | class ExampleInstrumentedTest { 16 | @Test 17 | fun useAppContext() { 18 | // Context of the app under test. 19 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 20 | assertEquals("com.forgo7ten.vulnerableapp", appContext.packageName) 21 | } 22 | } -------------------------------------------------------------------------------- /attackapp/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /attackapp/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /vulnerableapp/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /attackapp/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /attackapp/src/main/java/com/forgo7ten/attackapp/utils/FileUtils.kt: -------------------------------------------------------------------------------- 1 | package com.forgo7ten.attackapp.utils 2 | 3 | import java.io.BufferedReader 4 | import java.io.InputStream 5 | import java.io.InputStreamReader 6 | 7 | /** 8 | * @ClassName FileUtils 9 | * @Description // 文件工具类 10 | * @Author Forgo7ten 11 | **/ 12 | object FileUtils { 13 | /** 14 | * @Description // 从输入流中读取数据 15 | * @Param [inputStream] 输入流 16 | * @Return java.lang.String 17 | */ 18 | fun readFromInputStream(inputStream: InputStream): String { 19 | val sb = StringBuilder() 20 | val reader = BufferedReader(InputStreamReader(inputStream)) 21 | var line: String? = reader.readLine() 22 | while (line != null) { 23 | sb.append(line) 24 | line = reader.readLine() 25 | } 26 | return sb.toString() 27 | } 28 | } -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | VulnerableApp 3 | Android漏洞靶场 4 | 5 | Manifest中定义组件未实现[available] 6 | 应用数据备份配置不当漏洞[available] 7 | 应用调试模式配置不当漏洞[available] 8 | App通用型拒绝服务漏洞[available] 9 | ContentProviderURI授权不当[available] 10 | Provider文件目录遍历漏洞[available] 11 | WebView 相关漏洞[available] 12 | 中间人攻击 相关漏洞[available] 13 | ERROR 14 | -------------------------------------------------------------------------------- /vulnerableapp/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | -------------------------------------------------------------------------------- /attackapp/src/main/res/layout/activity_unimpl_comp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 |