一句话木马原理
程序保护机制
web 中 xff 与 referer
弱类型比较
弱类型比较
当两个不同类型的参数进行 ‘==’ 比较而非 ‘===’ 比较时,将会转换成相同类型进行比较。
- var_dump(“admin”==0); //true
- var_dump(“1admin”==1); //true
- var_dump(“admin1”==1) //false
- var_dump(“admin1”==0) //true
- var_dump(“0e123456”==”0e4456789”); //true
由第 1 个和第 2 个可知,当第一个字符为数字,后面都是字符串或字符时,字符串或字符将会等同于 0,整体等于第 1 个数字加上 0,又因为题目具体要求为与 1 比较,所以这时候的 GET 参数构造就应该为 1xxxxx,xxxxx 为任意字母。
Robots协议
Robots协议
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots ExclusionProtocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取.
根据协议,网站管理员可以在网站域名的根目录下放一个robots.txt 文本文件,里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面,指定的页面由正则表达式表示。网络爬虫在采集这个网站之前,首先获取到这个文件,然后解析到其中的规则,然后根据规则来采集网站的数据。
为什么需要Robots协议
互联网上的网页是通过超级链接互相关联起来的,从而形成了网页的网状结构。爬虫的工作方式就像蜘蛛在网上沿着链接爬来爬去,最基本的流程可以简化如下:
MySQL-show 语法
MySQL 中 show 语法
- show tables 或 show tables from database_name; – 显示当前数据库中所有表的名称。
- show databases; – 显示 mysql 中所有数据库的名称。
- show columns from table_name from database_name; 或 show columns from database_name.table_name; – 显示表中列名称。
- show grants for user_name; – 显示一个用户的权限,显示结果类似于 grant 命令。
- show index from table_name; – 显示表的索引。
- show status; – 显示一些系统特定资源的信息,例如,正在运行的线程数量。
- show variables; – 显示系统变量的名称和值。
- show processlist; – 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有 process 权限,就可以查看所有人的进程,包括密码。
- show table status; – 显示当前使用或者指定的 database 中的每个表的信息。信息包括表类型和表的最新更新时间。
- show privileges; – 显示服务器所支持的不同权限。
- show create database database_name; – 显示 create database 语句是否能够创建指定的数据库。
- show create table table_name; – 显示 create database 语句是否能够创建指定的数据库。
- show engines; – 显示安装以后可用的存储引擎和默认引擎。
- show innodb status; – 显示 innoDB 存储引擎的状态。
- show logs; – 显示 BDB 存储引擎的日志。
- show warnings; – 显示最后一个执行的语句所产生的错误、警告和通知。
- show errors; – 只显示最后一个执行语句所产生的错误。
- show [storage] engines; –显示安装后的可用存储引擎和默认引擎。
sql 注入 - 堆叠注入
0x01 原理
在 SQL 中,分号(;)是用来表示一条 sql 语句的结束。试想一下我们在;结束一个 sql 语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而 union injection
(联合注入)也是将两条语句合并在一起,两者之间有什么区别么?区别就在于 union
或者 union all
执行的语句类型是有限的,可以用来执行查询语句,而堆叠注入可以执行的是任意的语句。例如以下这个例子。用户输入:1; DELETE FROM products
服务器端生成的 sql 语句为:(因未对输入的参数进行过滤)Select * from products where productid=1;DELETE FROM products
当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。
Sql 注入漏洞详解
一、Sql 注入漏洞详解
1.1 Sql 注入产生原因及威胁:
当我们访问动态网页时,Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。
这种网站内部直接发送的 Sql 请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。
Sql 注入带来的威胁主要有如下几点:
・猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
・绕过认证,列如绕过验证登录网站后台。
・注入可以借助数据库的存储过程进行提权等操作