当前位置: 首页 > wzjs >正文

利用git做网站备份营销推广渠道

利用git做网站备份,营销推广渠道,上海快速建站提供商,学校网站设计理念目录 第04关 POST型注入 1.源码分析 2.sqlmap注入 (1)bp保存报文 (2)sqlmap渗透 (3)获取flag 第05关 过滤型注入 1.源码分析 2.sqlmap渗透 (1)bp抓包保存报文 &#xff0…

目录

第04关 POST型注入

1.源码分析

2.sqlmap注入

(1)bp保存报文

(2)sqlmap渗透

(3)获取flag

第05关 过滤型注入

1.源码分析

2.sqlmap渗透

(1)bp抓包保存报文

(2)sqlmap渗透

(3)获取flag


第04关 POST型注入

http://192.168.71.1/webug4/control/sqlinject/post_injection.phphttp://192.168.71.1/webug4/control/sqlinject/post_injection.php

1.源码分析

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}
/*** SELECT * FROM sqlinjection WHERE content = '1' or if(1=1, sleep(3),1); --+'*/
if (isset($_POST["keyWordName"])) {if (!empty($_POST["keyWordName"])) {$sql = "SELECT * FROM sqlinjection WHERE content = '{$_POST["keyWordName"]}'";$res = $dbConnect->query($sql) or die("Invalid query: " . mysqli_stmt_error(). $sql);}
}
require_once TPMELATE."/post-injection.html";

相对于第01关、第02关、第03关均为字符型注入,闭合方式为单引号, 只是方式有点变换,由GET方法变为了POST方法。下面是SQL相关调用的关键方法,如下所示:

SELECT * FROM sqlinjection WHERE content = '{$_POST["keyWordName"]}'

再看一下输出显示,根据源码可知与第01关相同,当SQL执行错误时会调用mysqli_stmt_error()函数,其余则是正常显示,存在时间盲注。

2.sqlmap注入

(1)bp保存报文

将报文保存为 webug04.txt

(2)sqlmap渗透

sqlmap -r webug04.txt --current-db --dump --batch

如下所示渗透成功

(3)获取flag

根据如下可知,本关卡的flag为dsfasdczxcg

第05关 过滤型注入

http://192.168.71.1/webug4/control/sqlinject/filter_injection.phphttp://192.168.71.1/webug4/control/sqlinject/filter_injection.php

1.源码分析

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}
/*** SELECT * FROM sqlinjection WHERE content = '1' or if(1=1, sleep(3),1); --+'*/
$filter = array('select', 'SELECT');
if (isset($_POST["keyWordName"])) {if (!empty($_POST["keyWordName"])) {if (in_array($_POST['keyWordName'], $filter)) {echo "<script>alert('请不要尝试注入危险函数')</script>";} else{$sql = "SELECT * FROM sqlinjection WHERE content = '{$_POST["keyWordName"]}'";$res = $dbConnect->query($sql) or die("Invalid query: " . mysqli_stmt_error(). $sql);}}
}
require_once TPMELATE."/post-injection.html";

相对于第01关、第02关、第03关均为字符型注入,闭合方式为单引号, 只是方式有点变换,由GET方法变为了POST方法。下面是SQL相关调用的关键方法,如下所示:

SELECT * FROM sqlinjection WHERE content = '{$_POST["keyWordName"]}'

再看一下输出显示,根据源码可知与第01关相同,当SQL执行错误时会调用mysqli_stmt_error()函数,其余则是正常显示。另外,关于代码的过滤,通过源码可知源码中涉及到过滤SQL的关键字,共有两个,分别时select和SELECT过滤

$filter = array('select', 'SELECT');
if (isset($_POST["keyWordName"])) {if (!empty($_POST["keyWordName"])) {if (in_array($_POST['keyWordName'], $filter)) {echo "<script>alert('请不要尝试注入危险函数')</script>";}}
}

不过这个in_array函数写的有问题,因in_array()函数是完全匹配,也就是说只有输入参数完全是select或者SELECT才可以弹框,其他情况不可以弹框

in_array() 函数搜索数组中是否存在指定的值。
语法in_array(search,array,type)
参数:search 必需。规定要在数组搜索的值。
array 必需。规定要搜索的数组。

 因为注入的时候,不可能参数只是select或者SELECT,所以这个过滤函数没有任何用,换言之这个写靶场的开发者对SQL注入部分的限制还是有点问题的。

2.sqlmap渗透

(1)bp抓包保存报文

将报文保存为webug05.txt文件

(2)sqlmap渗透

按照开发者的目的,猜测原本是希望使用sqlmap的绕waf脚本 randomcase.py,将随机大小写来绕过源码对select关键字的过滤

sqlmap -r webug05.txt --current-db --dump --batch --tamper randomcase.py

如下所示渗透成功,发现时间盲注点

实际上本来不使用脚本也可注入成功,因为sqlmap会自动尝试编码绕过方法以渗透成功。更别提本关卡的过滤限制只是一个摆设而已,完全没有任何作用,故而渗透方法如下即可

sqlmap -r webug05.txt --current-db --dump --batch

(3)获取flag

根据如下可知,本关卡的flag为safsafasdfasdf

http://www.dtcms.com/wzjs/480074.html

相关文章:

  • 网站制作架构培训心得体会800字
  • 郑州网站建设三猫网络软文模板app
  • 做网站的空间是啥百度一下就知道手机版
  • h5手机网站建设是什么意思友链互换平台推荐
  • 做涂鸦的网站谷歌seo排名优化
  • 百度网站的设计风格上海哪家seo公司好
  • 医院网站开发百度登录首页
  • 常州网站制作免费个人自助建站
  • 怎么维护网站教程百度首页官网
  • 英文网站如何建设yahoo搜索
  • 技术支持 天空网络-临汾做网站坚决把快准严细实要求落实到位
  • 之前做的网站推广怎么删除做一个app软件大概要多少钱
  • 一等一网站建设seo优化包括
  • 德州乐陵德州seo公司湖北网络推广seo
  • 手表网站排行榜seo建站工具
  • wordpress 移动api潍坊seo建站
  • 做魔杖网站聚合搜索引擎接口
  • 泰安网约车平台有哪些优化20条措施
  • 内部网站 建设方案搜索引擎优化的主要工作
  • 建微网站免费网站安全软件大全
  • wordpress数据库调用文章seo全称
  • 建设工程合同包括三种重庆白云seo整站优化
  • 集团网站设计特性免费网络推广网站
  • 南通营销网站制作重庆网站制作系统
  • 做网站的做app的查企业信息查询平台
  • 做网站哪些软件百度云搜索
  • 五大搜索引擎 三大门户网站如何使用免费b站推广网站
  • 好的模板网站百度网页广告怎么做
  • 微商的自己做网站叫什么名字百度seo新算法
  • ssh做的大型网站买链接官网