1. 程式人生 > >本地搭建簡單SQL注入環境

本地搭建簡單SQL注入環境

      首先本地要有一個wamp server,因為SQL注入涉及到與資料庫互動,所以先從搭建測試資料庫開始。
      開啟mysql console,輸入root賬戶密碼登陸。建立一個數據庫,並命名為fake,命令如下:

create database fake;

      因為我之前已經建立好了,這裡直接配置fake資料庫的使用者許可權,配置為leon使用者訪問,且leon使用者的密碼為leon,命令如下:

grant all privileges on fake.* to [email protected] identified by 'leon' with grant
option;

      如下圖所示
這裡寫圖片描述
      使用phpmyadmin也可以配置使用者許可權,參考下面文章:
      phpmyadmin使用者及許可權管理
      配置使用者許可權主要是為了防止跨庫,直接使用root使用者來連線當然也是可以的。
      資料庫的使用者許可權配置好了,接下來就是在資料庫下建表,建欄位等,同樣可以使用mysql console命令來完成這些操作,但是使用phpmyadmin比較方便
      首先在fake這個資料庫下建立一個user表,user表下包括3個欄位,分別是id,username和password,設定id為主鍵。
這裡寫圖片描述


      然後向欄位中插入內容
這裡寫圖片描述
      最終的內容如下
這裡寫圖片描述
      如果想要用mysql console來實現,我們可以新建一個fake2資料庫來測試,create好資料庫後,輸入下面命令建立資料表和欄位並簡單配置:

create table `user`(`id` int(11) not null,`username` varchar(20) not null,`password` varchar(20) not null,primary key (`id`)) engine=myisam default charset=latin1;

      接著向資料庫的欄位裡insert內容

insert into `user` (`id`,`username`,`password`) values (1,'leon','admin'),(2,'susan','test');

      操作過程如下圖
這裡寫圖片描述
這裡寫圖片描述
      這裡有個小細節,其實上面的這些建表、建欄位和插入的語句我是利用匯出的user.sql檔案得到的,具體操作就是使用phpmyadmin進入下面的介面
這裡寫圖片描述
      全選所有欄位並匯出,跳轉到下面的頁面
這裡寫圖片描述
      點選執行就會匯出一個user.sql檔案,然後使用編輯器開啟
這裡寫圖片描述
      怎麼感覺跑題了。。。到了這裡資料庫方面就處理好了,然後就是注入檔案的構造,程式碼如下:

<?php

$id = $_GET['uid'];

echo "您當前執行的sql語句為:" ;
echo "select * from user where id=" . $id . "<br/>";
echo "<hr>";

$mysqli = new mysqli('127.0.0.1','leon','leon','fake'); 

if(mysqli_connect_errno()){
    printf("連線失敗:%s<br>",mysqli_connect_error());
    exit();
}


$result = $mysqli->query("select * from user where id=$id");
//print_r($result->fetch_array(MYSQLI_ASSOC));

while(list($id,$username,$password)=$result->fetch_row()){
    echo "使用者ID:" . $id . "<br/>";
    echo "使用者名稱:" . $username . "<br/>";
    echo "使用者密碼:" . $password . "<br/>";
}

$result->close();
$mysqli->close()

?>

      從SQL查詢語句中可以看到這是數字型的注入,本地的訪問效果:
這裡寫圖片描述
      手工注入,sqlmap注入都是可以的。
這裡寫圖片描述
這裡寫圖片描述
      比較懷舊的也可以使用下面的程式碼

<?php

$id = $_GET['uid'];

$conn = @mysql_connect('127.0.0.1','leon','leon');  //這裡使用@符號遮蔽出錯資訊
mysql_select_db('fake',$conn);

$sql = "select * from user where id=$id";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
    echo "使用者ID:" . $row['id'] . "<br/>";
    echo "使用者名稱:" . $row['username'] . "<br/>";
    echo "使用者密碼:" . $row['password'] . "<br/>";
}

mysql_close($conn);
echo "<hr>";
echo "您當前執行的sql語句為:" ;
echo $sql;

?>

相關推薦

本地搭建簡單SQL注入環境

      首先本地要有一個wamp server,因為SQL注入涉及到與資料庫互動,所以先從搭建測試資料庫開始。       開啟mysql console,輸入root賬戶密碼登陸。建立一個數據庫,並命名為fake,命令如下: create databa

常見的sql注入環境搭建

常見的sql注入環境搭建 By : Mirror王宇陽 Time:2020-01-06 PHP+MySQL摘要 $conn = new mysqli('資料庫伺服器','username','password','database')

本地搭建WordPress (XAMMP環境

log 輸入 site notepad oot 計算機 intern 有關 style 本地搭建WordPress (XAMMP環境) 1,XAMMP是一個流行的PHP開發環境,官網下載: https://www.apachefriends.org/zh_cn/

express 搭建簡單前端開發環境

1,用express做靜態資源伺服器2,用http-proxy-middleware實現請求轉發,解決開發中前端介面跨域的問題實現步驟:1,新建app.js內容如下:var express = require('express');var proxy = require("h

搭建簡單JavaWeb測試環境搭建原因

- 文章目的 問題1: 相信很多測試人員都和我一樣有個疑慮就是我的B/S應用程式到底是怎樣的,瀏覽器與伺服器之間怎麼進行互動的,程式和資料之間又是怎麼互動的。 問題2: 做了幾年的測試人員,對系統的互動有了一定的瞭解,但是要想自己搭建一個屬於自己的環境,

mybatis自帶常用操作資料庫方法詳解以及如何搭建簡單的mybatis環境

首先我們介紹一下mybatis中一些自帶常用的方法,後面我們介紹如何搭建mybatis環境 ① selectByPrimaryKey() User user = userDAO.selectByPrimaryKey(100); 相當於select * from user where id = 10

linux之mysql資料庫搭建sql注入和防禦

mysql中文手冊下載地址:/data/2244392 sql注入各種姿勢:/10319657/1828167 sqlmap注入神器詳解:/10319657/1841241 資料庫分為三種基本形式 : (其實這些都是眾所周知的,只是為了知識的完整性,簡單的帶過

Docker + Nodejs + Kafka + Redis + MySQL搭建簡單秒殺環境

秒殺活動可以說在網際網路上隨處可見,從12306搶票,到聚划算搶購,我們生活的方方面面都可以看到秒殺的身影。秒殺的架構設計也是對於一個架構師架構設計能力的一次考驗。本文的目的並不在於提供一個可以直接落地的設計方案,而是意在提供一個簡單的方法,一個思路,使大家能夠對於秒殺背後

SQL注入簡單本地環境測試

1、搭建本地留言板環境進行測試,獲取使用者名稱和密碼留言板的個人中心介面2、新增一個單引號好出現資料庫報錯,可能存在sql注入3、3、判斷注入型別是整型還是字串型別1=1和1=2返回介面不一樣,判斷為整型注入4、猜欄位,7時介面正常,8時介面不正常,說明有7列5、判斷顯示位,

GitLab+本地Nginx簡單環境搭建

web 選擇 進程 ngs 自己的 ocs 失效 環境 github 最近找工作,閑著逛github就看到gitlab這麽個東西,說是比github功能多些。所以果斷去官網看了看,然後在自己的虛擬機上簡單搭建了一個。 gitlab官網:https://abo

搭建sqli-labs環境來練習SQL注入

sqli-labs是什麼 SQLI-LABS是一個學習SQL注入的平臺: 基於錯誤的注入 (Union Select) String 字元型 Intiger 數字型 基於錯誤的注入 (基於雙注入) 盲注: 1.基於布林型的 2.基於時間

搭建DVWA測試環境SQL注入之SQLmap入門

DVWA是一款滲透測試的演練系統,在圈子裡是很出名的。如果你需要入門,並且找不到合適的靶機,那我就推薦你用

為想學SQLite或練習SQL語言的朋友搭建簡單的命令列環境------在Windows, Linux, Android(用adb連線安卓手機)上玩轉SQLite資料庫的sqlite3命令列

       有言在先: 如果你是隻想玩玩SQL語句的lazy bone,  請直接看本文最後的"LAST部分"        之所以寫這篇文章, 是因為覺得SQLite實在是太棒了, 想學習資料庫的朋友們, 千萬不要錯過這麼優秀的資料庫。 對於初學者來說, SQLite

滲透測試漏洞平臺DVWA環境安裝搭建及初級SQL注入

一:簡介       DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑑定的PHP/MySQL Web應用,旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。  

Appium+python(1)簡單的介紹環境搭建

uil aid abc 同事 type img div 新手 tmp 環境搭建其實並不難,只不過安裝的東西有點多,要加的環境變量有點多。 鏈接:https://pan.baidu.com/s/1nwLhNIT 密碼:56wn 這個壓縮包裏要用的都有了,只需

【Spark筆記】Windows10 本地搭建單機版Spark開發環境

語句 spl 嘗試 spa efi 下載界面 RR 是否 錯誤 0x00 環境及軟件 1、系統環境 OS:Windows10_x64 專業版 2、所需軟件或工具 JDK1.8.0_131 spark-2.3.0-bin-hadoop2.7.tgz hadoop-2.8

webpack4從零配置搭建簡單的React16開發環境

scripts cif TBase ase ren 如果 輸出 init ntb 寫在最前 暑假想要學習React, 發現React官網上的沒有說明如何搭建React開發環境, 網上找的很多都是基於webpack3的, 或者直接使用腳手架, 所以趁著放假, 就稍微學了下we

實驗吧 簡單SQL注入1

解題連結: http://ctf5.shiyanbar.com/423/web/ 解題思路:一,   輸入1,不報錯;輸入1',報錯;輸入1'',不報錯。 二 ,   輸入1 and 1=1,返回1 1=1,可知,and被過濾了。 三,  &n

Nginx運維之二 簡單安裝和環境搭建

Nginx運維之二 簡單安裝和環境配置 安裝環境 gcc 安裝 PCRE pcre-devel 安裝 zlib 安裝 OpenSSL 安裝 下載安裝 配置安裝 編譯安裝 配置編輯(案例) 啟動

手工sql注入簡單入門

1、判斷是否可以注入: 數字型: 1.1在引數後面加一個引號',如果頁面報數字number錯誤,則一定不是sql注入點;如果報資料庫比如mysql、oracle之類的錯誤,則是一個sql注入點。 1.2 在引數後面加上 依次加上 and 1=1 和 and 1=2,如果加上 and 1=1 還能正常顯示原