基於insert update delete的注入

2021-09-16 19:52:57 字數 1538 閱讀 3772

inset注入原理:

所謂inset注入就是指我們前端註冊的資訊會被後台通過insert操作插入到資料庫裡邊去,若此時後台沒有做出相應的處理就會構成insert注入。

insert注入方法:

insert用法例如:

insert into member(username,pw,***.phonenum,email,address) values('***xx',111111,1,1,1,1,);
以上是insert的完整語句,而我們輸入的使用者名稱對應的就是上面『***xx』這裡,這裡我們可以使用or這個邏輯運算子,例如用下面的語句代替***xx:

x' or updatexml(1,concat(0x7e,version()),0) or '
第乙個or的意思是對第乙個插入的值進行運算,在運算的過程中就會執行updatexml()這個函式,所以我們就可以在這裡插入我們構造的sql語句。

效果圖:

update注入:

update注入和上面insert注入一樣,只不過update在修改資訊那裡注入,而insert在註冊那裡注入,除此之外還有乙個小問題,update 的修改資訊那裡需要全部填滿,如果沒有填滿的話,他不會返回任何資訊。

效果圖:

delete注入原理:delete注入方法:

id是乙個數字,所以可以不用單引號進行閉合,我們可以這樣寫:

1 or updatexml(1,concat(0x7e,version()),1)

注意!!!在這裡需要注意乙個問題!,因為我們的引數是在url裡面提交的,所以我們需要將它轉化成url的形式,而我們的工具bp上面也有,如圖:

最後得到的效果圖:

以上是三種不同於select查詢語句的sql注入方法,現在說一下它們之間的區別:

insert update 和delete這三個是乙個操作,而select是乙個查詢語句,是可以直接查詢到所需要的資訊,而操作只能夠通過報錯返回資訊的方式查詢到我們所需的資訊,還有乙個不同點就是select是可以使用union的,因為它是乙個完整的語句,而insert update和delete不行,這三個是乙個操作。

AspectJ基於xml和基於註解

一 基於xml 執行的切入點中具體方法有返回值,則方法結束會立即執行後置通知,然後再執行環繞通知的放行之後的 2 連線點即所有可能的方法,切入點是正真被切的方法,連線點方法名 其中,只有環繞通知的切入點引數不一樣,是可以放行的切入點 3 異常通知是處理異常 切面類中的異常通知的方法引數列表中異常引數...

拓撲排序(基於dfs 基於佇列)

dfs函式的返回值表示是否成環,若存在有向環,則不存在拓撲排序。不包含有向環的有向圖稱為有向無環圖 dag 可以借助dfs完成拓撲排序,在訪問完乙個結點時把他加入當前拓撲序的首部。舉個栗子 比如乙個 1,2 1,3 2,3 的有向無環圖,就先搜尋1,再遞迴搜尋2,再搜尋3,3沒有出度了,於是放進拓撲...

基於IP,基於port和基於網域名稱的三種

1 基於相同ip不同port的虛擬主機 2 將listen欄位改為 listen 80 listen 8888 以上設定表示使用80以及8888埠 3 更改虛擬主機部分為 documentroot var www html website1 documentroot var www html web...