SQL注入在国内CTF比赛中的地位特别高,基本上是每次比赛的必出题。有时候还不只一道题,一道题也不只有一个数据库,可能是与SSRF、XSS等漏洞配合出题等,这时候就需要我们根据不同的环境随机应变。在这里,我们主要介绍基于MySQL的注入。
在本章中,我们假设你已经有一定的SQL基础,熟悉常见的增(insert)删(delete)改(update)查(select)语句,了解常见的查询(比如联合查询、连接查询等),知道基本的数据库的权限控制,并了解PHP的基本语法和常见的参数传递方法(如GET、POST等)。
WHATSQL注入的成因开发人员在开发过程中直接将URL中的参数 HTTP Body中的Post参数或其他外来的用户输入(如Cookies,UserAgent 等)与SQL语句进行拼接
造成待执行的SQL语句可控,从而使我们可以执行任意SQL语句
了解了SQL注入的成因之后,我们再来简要介绍下常见SQL注入的分类,具体如下。
1)可回显的注入·可以联合查询的注入。·报错注入。·通过注入进行 DNS 请求,从而达到可回显的目的。2)不可回显的注入· Bool 盲注。· 时间 盲注。
...
指针意义所在当我们采用模块化的思路将整个程序分为主调函数和其他调用函数的时候 在其他调用函数中 其变量定义属于动态存储 相对于主调函数是无意义的 属于调用后即被释放对原函数毫无影响的范畴。因此指针变量提供了一个指向主调函数内存的途径。
我希望你能为我解释下以下代码中我存在的问题(可能涉及变量存储)
12345678910111213141516#include<stdio.h>int main(){ void change(int x,int y); int a,b; scanf("%d %d",&a,&b); change(a,b); printf("%d %d",a,b);}void change(int x,int y){ int t; t=x; x=y; y=t;}
在C语言中 我自定义了一个函数 使输入的两个变量交换 但为什么到主调函数中并没有呈现交换后的结果
Ans
在你提供的代码中,你调用了一个 change 函数来交换变量 a 和 b 的值,但是在主函数中并没有 ...
第一个Node程序Hello.js123'use strict';console.log('Hello, world.');
第一行总是写上'use strict';是因为我们总是以严格模式运行JavaScript代码,避免各种潜在陷阱。
命令行互动–然后,选择一个目录,例如C:\Workspace,把文件保存为hello.js,就可以打开命令行窗口,把当前目录切换到hello.js所在目录,然后输入以下命令运行这个程序了:
如果当前目录下没有hello.js这个文件,运行node hello.js就会报错
12345678910C:\Workspace>node hello.jsmodule.js:338 throw err; ^Error: Cannot find module 'C:\Workspace\hello.js' at Function.Module._resolveFilename at Function.Module._load at Fun ...
基本网站编辑使用的工具
计算机。也许这对一些人来说听起来习以为常,但你们中的一些人正在使用手机或图书馆的电脑阅读这篇文章。对于重度的 Web 开发,最好购买一台运行 Windows、macOS 或 Linux 的台式机或笔记本电脑。
文本编辑器,用来写代码。可以是一个文本编辑器(如 Visual Studio Code、Sublime Text、Atom 、GNU Emacs 或者 VIM ),或一个混合编辑器( Dreamweaver 或 WebStorm)。Office 文档不适合这种用途,因为它们依赖隐藏的元素,会干扰网络浏览器使用的渲染引擎。
网络浏览器,用以测试代码。目前,最常用的浏览器是 Firefox 、Chrome、Opera、Safari、Internet Explorer 和 Microsoft Edge。你还应该测试你的网站在移动设备和你的目标受众可能仍在使用的任何旧浏览器(如 IE 8-10)上的表现。Lynx,一个基于文本的终端网络浏览器,对于查看视力障碍用户对你的网站的体验是非常好的。
图形编辑器,如 GIMP 、Figma 、Paint.NET 、Phot ...
JS是什么JavaScript(JS)是一种高级、解释性的编程语言,主要用于在网页上实现交互性和动态效果。它最初由Netscape公司开发,最初被称为“LiveScript”,后来为了借助Java的成功,改名为JavaScript。虽然名字中带有Java,但实际上两者在语法和设计上有很大的不同。
JavaScript 入门开始使用 JavaScript 很容易,你只需要一个现代 Web 浏览器。这篇教程包含了一些只在最新版本的火狐浏览器上才有的功能,所以建议大家使用最新版本的火狐浏览器。
火狐浏览器内置的 Web 控制台非常适合学习 JavaScript,Web 控制台包含两个输入模式——单行模式、多行模式。
单行模式Web 控制台 不仅可以展示当前已加载页面的信息,还包含一个可以在当前页面执行 Javascript 表达式的 命令行。
在火狐浏览器菜单栏的“工具” => “浏览器工具” => “Web 开发者工具”( 在 Windows 和 Linux 上Ctrl+Shift+I ,Mac 上Cmd+Option+K),选择”Web 开发者工具栏”的控 ...
Linux 和 Shell 简介Linux 是一种操作系统, 就像 macOS 和 Windows 一样。
它驱动了绝大多数的互联网服务器,是构建任何设施的“地基”,但还不仅如此。 Android 操作系统(中文也称“安卓”)实际上是基于(一种修改版的)Linux 构建的
Linux 可以让你拥有用计算机做任何事情的自由。这是微软、苹果、谷歌这样的大公司永远不会向用户提供的。
什么是 Linux 的 Shell?hell 通常指的是命令行界面的解析器,简单来说,它给用户提供一个操作界面,来访问底层的操作系统内核进行工作。
它可以让你使用文本和命令执行操作,同时还提供诸如创建脚本之类的高级功能。
这很重要:Shell 为用户提供了一种比 GUI (图形用户界面)更为高效的方式来做事。命令行工具可以提供更多不同的参数设置,但用起来不会变得太复杂。
Shell 有很多种,这里主要介绍 Unix shell,通常在 Linux 和 macOS 电脑上都可以见到。
经过长年发展,很多人为这些系统开发了不同种类的 Shell。其中有一些是最主要的,比如 Bash、Csh、Zsh、Fish 等,当然 ...
MySQL 漏洞利用与提权权限获取数据库操作权限本文讲的是 MySQL 提权相关知识,但是提权之前得先拿到高权限的 MySQL 用户才可以,拿到 MySQL 的用户名和密码的方式多种多样,但是不外乎就下面几种方法:
MySQL 3306 端口弱口令爆破
sqlmap 注入的 --sql-shell 模式
网站的数据库配置文件中拿到明文密码信息
CVE-2012-2122 等这类漏洞直接拿下 MySQL 权限
Webshell 权限into oufile 写 shell
知道网站物理路径
高权限数据库用户
load_file () 开启 即 secure_file_priv 无限制
网站路径有写入权限
首先基础语法查询是否 secure_file_priv 没有限制
123456mysql> show global variables like '%secure_file_priv%';+------------------+-------+| Variable_name | Value |+------------------+-------+| ...
文件包含漏洞为了更好地使用代码的重用性,可以使用文件包含函数将文件包含进来,直接使用文件中的代码来提高重用性。但是这也产生了文件包含漏洞,产生原因是在通过 PHP 的函数引入文件时,为了灵活包含文件会将被包含文件设置为变量,通过动态变量来引入需要包含的文件。此时用户可以对变量的值可控,而服务器端未对变量值进行合理地校验或者校验被绕过,就会导致文件包含漏洞。
函数
功能
include()
代码执行到 include() 函数时将文件包含
include_once()
当重复调用同一文件时只调用一次,功能与 include() 相同
require()
require() 执行如果发生错误,函数会报错并终止脚本
require_once()
当重复调用同一文件时只调用一次,功能与 require() 相同
包含漏洞分类本地包含当包含的文件在服务器本地时,就形成了本地文件包含。文件包含可以包含任意文件,被包含的文件可以不是 PHP 代码,可以是文本或图片等。只要文件被包含就会被服务器脚本语言执行,如果包含的文件内容不符合 php 语法,会直接将文件内容输出。例如 ...
第一周Web1.vue-terminal分别使用cd ,ls,cat找出下一个url
2..ez_maze
源码审计 发现js存在混淆
方法1
ctrl+f 寻找关键字flag
发现常量–const flag = ‘ROIS{Its_’ + _0x2e725b(0x180) + _0x2e725b(0x17a) + _0x2e725b(0x16a);
可在浏览器控制台输入flag这个常量
方法2
使用反混淆工具 继续检索flag
1const flag = 'ROIS{Its_fun_to_play_maze_with_js!}';
方法3
熟悉js后 将源码拷贝放入vscode 检索flag后发现三目运算符
1else maze[_0x45acd1][_0x118e43] === 0x2 ? (alert(_0x4c26cf(0x16e) + flag), resetGame(), window[_0x4c26cf(0x168)]['href'] = '/') : (playerX = _0 ...
第一部分:Shell 倘若你接触计算机且深入的学习它,你会可视化界面是很受限的。此时命令行工具(Shell)便是帮助我们与计算机进行更多交互,完成更多工作的核心。 当你打开一个终端可能会出现接下来的字眼:(xzb666㉿XZB)-[ ~ ]Q: 倘若了解我的人看这个可能会有点蒙 为什么打开的终端上面会显示xzb666和XZB呢?A: xzb666是我虚拟机的username XZB则是我虚拟机的真实名 至于~则是我的根目录 也就是我当前所处的path 他们在终端中只起到一个作用 就是命令行提示符(Shell prompt)Q:打开终端后好像需要输入什么 这是为什么呢A:Terminal是你和shell交互 传递目标活动(command)的工具 在里面输入指令后计算机会进行对应的处理
第二部分:How to use Shell 第一次打开shell 不妨尝试先输入date试试 这将会是你第一次和计算机的非可视化界面交互 在交互过程中你向计算机输入对应date的command,计算机在处理后输出对应的具体时间 在这个过程中计算机的程序不会做任何的改变 接下来让我们进阶的深入了解一下She ...