[强网杯 2019]随便注
根据题名可以知道为sql注入。题目直接给了1,我们发送一下。
![image20230916082459765 [强网杯 2019]随便注_单引号](https://file.cfanz.cn/uploads/png/2023/10/07/18/6MPZ32aYJ3.png)
看到了给的回显。
![image20230916083330795 [强网杯 2019]随便注_单引号_02](https://file.cfanz.cn/uploads/png/2023/10/07/18/b169YM2X09.png)
再次进行测试,在1的后面加上单引号,发现报错闭合不正确
![image20230916083608813 [强网杯 2019]随便注_字段_03](https://file.cfanz.cn/uploads/png/2023/10/07/18/f02Rf746Y2.png)
测试字段
![image20230916083914170 [强网杯 2019]随便注_字段_04](https://file.cfanz.cn/uploads/png/2023/10/07/18/1BQ780f1W6.png)
在2时正常,3报错,所以有2个字段
![image20230916084019666 [强网杯 2019]随便注_字段_05](https://file.cfanz.cn/uploads/png/2023/10/07/18/TbJ5bc0R8d.png)
进行联合查询数据库,发现返回了个错误
1' union select null, user()
![image20230916084300370 [强网杯 2019]随便注_字段_06](https://file.cfanz.cn/uploads/png/2023/10/07/18/6Hc1cK4c80.png)
经过分析大概是过滤了select,发现绕过不了,那么我们使用堆叠注入(将一堆sql语句在一起执行使用分号结束上一个语句在叠加其他语句一起执行,一般select等被禁用时使用),查一下库正常回显。
![image20230916084811522 [强网杯 2019]随便注_字段_07](https://file.cfanz.cn/uploads/png/2023/10/07/18/XR6GK80e06.png)
查一下表,发现表可以查询到
![image20230916084925384 [强网杯 2019]随便注_单引号_08](https://file.cfanz.cn/uploads/png/2023/10/07/18/260V56264X.png)
查一下words
![image20230916085229231 [强网杯 2019]随便注_sql注入_09](https://file.cfanz.cn/uploads/png/2023/10/07/18/RdbdbW94CA.png)
再次查表,发现flag存在1919810931114514中
![image20230916085546805 [强网杯 2019]随便注_单引号_10](https://file.cfanz.cn/uploads/png/2023/10/07/18/6RA296A18b.png)
因为进行了select过滤,直接查询查询不到,那我们就将1919810931114514表改成words表,然后使用alter table 将1919810931114514表中的flag列名修改为words表中的id列名,通过原本查询将flag查询出来
?inject=1';rename table words to word;rename table `1919810931114514` to words;alter table words change flag id varchar(100)%23![image20230916091539375 [强网杯 2019]随便注_sql注入_11](https://file.cfanz.cn/uploads/png/2023/10/07/18/HL264E1F56.png)
通过内联查询1‘ or '1'='1,得到flag










