全网最新最全首届“陇剑杯”网络安全大赛完整WIRTEUP --- SQL注入(3题)

题目描述

某应用程序被攻击,请分析日志后作答:

8.1  黑客在注入过程中采用的注入手法叫_____________。(格式为4个汉字,例如“拼搏努力”)

wp:

取出一条日志

172.17.0.1 - - [01/Sep/2021:01:37:25 +0000] "GET /index.php?id=1%20and%20if(substr(database(),1,1)%20=%20'%C2%80',1,(select%20table_name%20from%20information_schema.tables)) HTTP/1.1" 200 422 "-" "python-requests/2.26.0"

url解码172.17.0.1 - - [01/Sep/2021:01:37:25  0000] "GET /index.php?id=1 and if(substr(database(),1,1) = '€',1,(select table_name from information_schema.tables)) HTTP/1.1" 200 422 "-" "python-requests/2.26.0"

if语句就是布尔判断

flag:

布尔盲注

8.2  黑客在注入过程中,最终获取flag的数据库名、表名和字段名是_____________。(格式为“数据库名#表名#字段名”,例如database#table#column)

wp:

 采用字符定位法就可以找到最终结果,因为sql盲注的原理就是一个一个字符猜测,猜对了就猜下一个字符,

比如

 %C2%80是第一个,猜对了进行下一次 %C2%80, %C2%80之前的就是正确结果,因此sq就是猜出的正确结果

1行 161行 数据库名
162行 353行 sqli数据库的表名
354行 545行 sqli数据库flag表的字段名
546行 2764行 sqli数据flag表flag字段内容

按照之前的方法就可以收集出字符串

库名  sqli

 表名  flag

字段名  flag

内容  flag{deddcd67-bcfd-487e-b940-1217e668c7db}

有一种取巧方法,先将日志信息全部url编码后,直接从后往前翻
执行了一条sql语句,查询的是sqli数据库flag表的flag字段

select flag from sqli.flag

flag:

sqli#flag#flag

8.3  黑客最后获取到的flag字符串为_____________。

wp:

上题已经解出

flag:

flag{deddcd67-bcfd-487e-b940-1217e668c7db}

原文地址:https://www.cnblogs.com/GKLBB/p/15305995.html