關于sql注入的簡要演示(入坑拋磚)
首先可能大家都會問什么是sql?
Sql是數(shù)據庫的一種類型,是用來存儲網站數(shù)據的。
每當我們點開一個網站,就會從網站的數(shù)據庫中獲取相關的內容。
我們來梳理一下訪問網頁的簡圖:
看完這個以后,我們發(fā)現(xiàn)一個問題,當我們對發(fā)送數(shù)據這塊動足夠腦筋的時候,只要輸入合理是可以做很多事情的,我們可以利用其方式獲取很多內容。
接下來我們來講解一下“ ' ”
這個符號在sql中的運用
首先'
在sql中閉合一句話結束,如果這句話用的是 '
來閉合,那么我們人為的加入 ' 是不是可以在后面接新的語句了呀?接新的句子就可以做自己想要做的事情了。
當然,如果大家想要真的理解還是要多學學sql和asp等語言。
接下來我們來開始演示吧~
接下來步入正軌,進入域名以后,我們會發(fā)現(xiàn)網站是要我們輸入id的,所以在這里按照sql的要求輸入
http://localhost/sqli/Less-1/?id=1
這里的?Id=1
是數(shù)據庫的進入的格式,想要回去對應的數(shù)據變數(shù)字就行了。
http://localhost/sqli/Less-1/?id=2
接著變換id,我們發(fā)現(xiàn)有多個賬戶密碼,這些都是這個網站對應的數(shù)據庫里面的內容。也是數(shù)據庫里面對應的路徑。
接下來就是重點了,當我們在http://localhost/sqli/Less-1/?id=1后面加入 ' 時候,我們來看一下
我們發(fā)現(xiàn)這個網站出現(xiàn)了報錯,并且出現(xiàn)了錯誤信息的一個反饋
''1'' LIMIT 0,1'
這是由于我們加入 ' 引起的,我們來看一下這個報錯語句,分析一下它,去掉最外層的 ‘' 得到 '1'' LIMIT 0,1 我們發(fā)現(xiàn)這個數(shù)據庫有限制,輸出只能是一行。
因為我們加入了'閉合了語句,那么結合后面的內容,我們可以在'后面補充一些句子來得到更多的內容,在這里我想獲取數(shù)據庫用戶名,一般默認user
http://localhost/sqli/Less-1/?id=1'and updatexml(1,concat(0x7e,user()),0)%23
%23就是'的意思。 是#url編碼之后的值,因為sql語句在進入數(shù)據查詢的時候會進行一次url解碼,所以這個地方必須是url編碼之后的值
這里我們看到出現(xiàn)了
~root@localhost
也就是數(shù)據庫的用戶名是 root
接下來我要查詢數(shù)據庫名稱
http://localhost/sqli/Less-1/?id=1' and updatexml(1,concat(0x7e,datebase()),0)%23
這里因為我把數(shù)據庫文件名字改了所以沒有查出來,當然,如果你知道的夠多,這里還有很多種做法,這里的datebase的名字是可以猜解出來的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
最新Navicat?16??Mac版安裝永久激活教程(親測有效)
這篇文章主要介紹了最新Navicat?16??Mac版安裝永久激活教程(親測有效),本文通過圖文并茂的形式給大家介紹的非常詳細,對Navicat?16?永久激活教程感興趣的朋友一起看看吧2022-08-08Navicat Premium 16最新永久激活教程(NavicatCracker)
最新版的Navicat Premium 16 已經發(fā)布,今天小編給大家分享Navicat Premium 16最新永久激活教程(NavicatCracker),感興趣的朋友跟隨小編一起看看吧2023-06-06解決Navicat Premium 15連接數(shù)據庫閃退的問題
這篇文章主要介紹了Navicat Premium 15連接數(shù)據庫閃退,本文給大家分享解決方法,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03