Pikachu实验过程1(函数报错的信息)

本文深入探讨SQL注入的各种技术,包括基于函数报错的信息获取、基于HTTPHeader的注入、盲注的不同类型及其工作原理,以及OS远程控制和暴力破解在SQL漏洞中的应用。适合对信息安全和数据库管理有兴趣的技术人员阅读。

一.基于函数报错的信息获取
1.常用报错函数updatexml().extractvalue().floor()
2.(select/insert/update/delete)
技术思路:
在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。
select/insert/update/delete都可以从报错信息中获取。
背景条件:后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。
updatexml():函数是MYSQL对XML文档数据进行查询和修改的XPATH函数
extractvalue():函数也是MYSQL对XML文档数据进行查询的XPATH函数
floor():MYSQL中用来去整的函数
updatexml()函数作用:改变(查找并替换)XML文档中符合条件的节点的值。
语法:UPDATEXML(xml_document.Xpathstring,new_value)
第一个参数:fiedname是string格式,为表中字段名。
第二个参数:Xpathstring(Xpath格式的字符串)。
第三个参数:new_valye,string格式,替换查找到符合条件的
Xpath定位必须是有效的,否则会发生错误
二.Select报错下的演示
在这里插入图片描述
1.Update注入演示

在这里插入图片描述
三…基于函数报错的信息获取
三个常用来报错的函数-extractvalue
函数的作用:从目标XML中返回包含所查询值的字符串
语法:ExtractValue(xml_document,xpath_string)
第一个参数:XML_document是string格式,为XML文档对象名称。
第二个参数:Xpath_string(Xpath格式的字符串)
Xpath定位必须是有效的,否则会发生错误。
在这里插入图片描述
四.基于Http header的注入
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
在这里插入图片描述
在这里插入图片描述
五.盲注
常见类型
1.基于布尔型SQL盲注
Boolean注入:构造SQL判断语句,通过查看页面的返回结果来推测哪些SQL判断条件是成立的,以此来获取数据库中的数据。
(1).判断当前数据库库名的长度
(2).获取当前数据库库名
由于数据库的库名范围一般在a-z,0-9之间,可能有特殊字符,不区分大小写。所以可以逐字符判断当前数据库库名,使用substr来截取database()的值,一次截取一个,注意和limit的从0开始不同,它是从1开始。
(3).获取数据库表名
在这里插入图片描述
2.基于时间型SQL盲注
时间盲注:基于的原理是,当对数据库进行查询操作,如果查询的条件不存在,语句执行的时间便是0.但往往语句执行的速度非常快,线程信息一闪而过,得到的执行时间基本为0. 利用sleep()或benchmark()等函数让mysql执行时间变长经常与if(expr1,expr2,expr3)语句结合使用,通过页面的响应时间来判断条件是否正确。if(expr1,expr2,expr3)含义是如果expr1是True,则返回expr2,否则返回expr3
Select sleep(N)可以让此语句运行n秒钟。但是如果查询语句的条件不存在,执行的时间便是0,利用该函数这样一个特殊的性质,可以利用时间延迟来判断我们查询的是否存在。
这便是SQL基于时间延迟的盲注的工作原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.基于报错型SQL盲注
六.OS远程控制
首先备份好你本地的数据库,方法如下。 1、用APMServ5.2.6(网站上面有下载)带的phpmyadmin 进行备份恢复。 A、运行APMServ5.2.6, 点击右边的“管理MySql 数据库”。服务器填写127.0.0.1:3306, 登入名称:root,密码为空进行登录。在左边是数据库列表。点击你的数据库。点导出、拉到 最下面把“另存为文件”打勾。点执行。这样你就可以备份你的数据库了。 2、运行mySQL-Front 备份恢复你的数据库。 A、新建一个登录。 信息栏中随便写一下名字。标识你的登录信息。 B、点击连接栏,分别填好: 服务器:服务器的IP 端 口:一般为3306 C、点击注册栏,分别填好: 用 户:你申请的数据库的用户名(如果是本地一般为root), 密 码:数据库的密码(本地为空) 数据库:你申请的数据库名。 填写好这些信息后点击“确定”这样就能链接到你的远程数据库了。左边这个远程数据。 服务器的一些数据库,点击你的数据库后等待链接。直至返回所有数据,你便能打开你的数据库。 中的数据表了。在这里你可以修改你的数据表结构,删除填加数据等(小心操作)。 D、右键点击你的数据库进行备份(输出)数据
七…基于暴力破解在sql漏洞中的应用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<think>好的,我现在需要帮助用户解决安装Pikachu后访问出现404错误的问题。首先,我需要了解用户的具体情况,但根据常见问题,可能有几个原因导致404错误。 首先,检查服务器是否正常运行。用户可能没有正确启动Apache或Nginx,或者服务崩溃了。需要确认服务状态,比如在Linux下使用systemctl status apache2或者查看是否有进程在运行。 接下来,确认文件路径是否正确。Pikachu的安装目录可能没有放在服务器的web根目录下,比如/var/www/html。用户可能把文件放错了位置,或者目录权限设置不正确,导致服务器无法访问。需要检查目录权限,确保Apache/Nginx用户有读取权限,可能需要chmod或chown命令调整。 然后,检查URL是否正确。用户可能输入的地址有误,比如拼写错误,或者端口不对。比如服务器监听在8080端口,但用户访问的是80端口,或者使用了错误的域名。需要确认正确的访问地址,包括协议(http/https)、域名或IP、端口和路径。 配置文件的问题也很关键。服务器的虚拟主机或重写规则可能没有正确配置,导致路由错误。比如Apache的mod_rewrite未启用,或者.htaccess文件没有正确配置。需要检查Apache的配置,确保AllowOverride设置为All,并重启服务。 此外,PHP模块是否安装并启用?Pikachu依赖PHP,如果PHP没有正确安装或相关模块缺失(如mysqli),可能导致服务器处理请求失败,返回404。需要检查PHP的安装情况,以及错误日志中的提示。 错误日志是重要的线索。查看Apache或Nginx的error.log,定位具体的错误信息,比如文件不存在、权限被拒绝,或者PHP解析错误。根据日志中的具体信息,可以更快找到问题根源。 可能还有其他因素,比如防火墙阻止了端口访问,或者SELinux/AppArmor的安全策略限制了服务器进程的访问权限。需要检查防火墙设置,确保端口开放,以及调整安全策略。 总结下来,解决步骤大致是:确认服务运行→检查文件路径和权限→验证URL正确性→检查服务器配置→查看PHP依赖→分析错误日志→排除防火墙和安全策略问题。需要一步步排查,逐步缩小问题范围,直到找到具体原因并解决。</think>当安装Pikachu靶场后出现404错误时,请按照以下步骤排查(以Apache服务器为例): ### 一、检查服务运行状态 ```bash # 查看Apache状态 systemctl status apache2 # 重启服务 sudo systemctl restart apache2 ``` 如果使用Nginx: ```bash systemctl status nginx ``` ### 二、验证文件存放路径 1. 默认Web根目录: - Apache:`/var/www/html` - Nginx:`/usr/share/nginx/html` 2. 检查是否将pikachu文件夹完整上传至web根目录 3. 设置目录权限: ```bash sudo chmod -R 755 /var/www/html/pikachu sudo chown -R www-data:www-data /var/www/html/pikachu ``` ### 三、检查URL访问方式 正确访问格式应为: ``` http://[服务器IP或域名]/pikachu/ ``` 常见错误示例: ``` http://localhost/pikachu # 缺少结尾斜杠 http://127.0.0.1:8080/pikachu # 错误端口 ``` ### 四、配置文件检查(Apache示例) 1. 确认虚拟主机配置: ```apache <VirtualHost *:80> DocumentRoot /var/www/html <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> ``` 2. 启用rewrite模块: ```bash sudo a2enmod rewrite sudo systemctl restart apache2 ``` ### 五、PHP环境验证 1. 创建测试文件`phpinfo.php`: ```php <?php phpinfo(); ?> ``` 2. 访问该文件确认PHP是否正常工作 ### 六、查看错误日志定位问题 ```bash # Apache日志 tail -f /var/log/apache2/error.log # Nginx日志 tail -f /var/log/nginx/error.log ``` 常见日志线索: - `File does not exist`:路径错误 - `Permission denied`:权限问题 - `No input file specified`:PHP配置错误 ### 七、补充排查项 1. 检查防火墙设置: ```bash sudo ufw allow 80/tcp ``` 2. 禁用SELinux(临时): ```bash setenforce 0 ``` ### 八、Pikachu特有配置 1. 检查`inc/config.inc.php`数据库配置 2. 确认已初始化数据库(首次安装需要) 通过以上步骤逐步排查后,通常可以解决大部分404访问问题。如果仍无法解决,请根据错误日志中的具体提示进一步分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值