Web For Pentester 阅读笔记(1)

The Web

网络应用程序是公司和研究机构在互联网上开放的最普遍的服务,而且,很多老的应用程序现在也已经有了网络版本。这些批量的改革使Web安全成为网络安全的一个重要部分。

Web 安全模型

最基本的Web安全模型是:不要相信客户端(传送的任何数据)。服务器端接受的大部分信息均可以被客户端伪造。安全第一,不要冒险;过滤任何数据比接受后发现不是用户控制端的数据要好很多。

Web 安全风险

Web应用程序具有应用程序的所有潜在风险:崩溃/信息泄露/信誉损坏/信息丢失/利益损失

Web 技术

架构

大多数Web应用程序依赖3个组件:

(1)客户端:大多数为Web浏览器

(2)从客户端接受请求的Web服务器端。如果可以唤起应用程序服务器处理请求,Web服务器仅将请求传送给应用程序服务器。

(3)返回和存取信息的存储后端:通常为数据库。

所有的组件可能有不同的行为,这些行为会受已存在且已爆出的漏洞的影响。所有的这些组件也可能表现出漏洞或者安全问题。


客户端技术

互联网用户通过浏览器(Chromium、Firefox、IE、Safari...)几乎天天使用大多数客户端技术:HTML、JavaScript、Flash...。然而,Web应用程序客户端也可以是臃肿的连接Web服务的客户端也可以仅是一个脚本。


服务器端技术

在服务器端有很多技术可以使用且对于Web问题都具有脆弱性,对于某个技术,通常会发生一些(固定的)问题。

服务器端可以划分为几个子类:

(1)Web服务器如Apache,lighttpd,Nginx,IIS...

(2)应用程序服务器如Tomcat,Jboss,Oracle Application Server...

(3)使用的程序语言:PHP,Java,Ruby,Python,ASP,C#,...程序语言也可以作为框架的一部分如Ruby-On-Rails,.Net MVC,Django.


存储后端

存储后端可以与Web服务器在一个服务器上,也可以在不同的服务器上。 这可以解释在利用相同漏洞时却表现出不同的行为的情况。

一些简单的后端的例子:

a、简单的文件

b、关系型数据库如Mysql、Oracle、SQL server、PostgreSQL..

c、其他数据库如MongoDB、CouchDB

d、目录存储如openLDAP或者Active Directory

一个应用程序可能使用多个存储后端。如一些应用程序使用LDAP存储用户和身份信息而使用Oracle存储信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第八关的网页源代码如下: ```html <!DOCTYPE html> <html> <head> <title>Web for Pentester</title> <meta charset="UTF-8"> </head> <body> <h1 align="center">Welcome to Web for Pentester</h1> <div align="center"> <img src="8.jpg" alt="web for pentester"> </div> <div align="center"> <form method="post" action="index.php"> <input type="text" name="flag"> <input type="submit" value="Submit"> </form> </div> </body> </html> ``` 从代码中可以看出,这是一个简单的表单,让用户输入 flag 并提交表单。flag 会被提交到 index.php 页面。 我们可以尝试输入一些字符串进行测试,但是没有提示错误或者正确的信息。因此,我们需要分析 index.php 页面的代码,看看它是如何处理 flag 的。 ```php <?php if (isset($_POST['flag'])) { $flag = $_POST['flag']; if (preg_match('/^[a-zA-Z0-9]+$/', $flag)) { if (strlen($flag) < 10) { echo 'Flag is too short'; } elseif (strlen($flag) > 20) { echo 'Flag is too long'; } elseif ($flag === 'web_for_pentester') { echo 'Congratulations! You have completed the challenge'; } else { echo 'Incorrect flag'; } } else { echo 'Invalid characters found'; } } ?> ``` 从代码中可以看出,flag 必须由字母和数字组成,并且长度必须在 10 到 20 之间。如果 flag 符合要求,那么就会与 "web_for_pentester" 对比。如果匹配,就输出 "Congratulations! You have completed the challenge"。否则,输出 "Incorrect flag"。 我们可以尝试输入不同长度的字符串,例如 "abc"、"12345678901234567890" 和 "web_for_pentester",从而找到正确的 flag。 因此,第八关的 flag 是 "web_for_pentester"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值