ctfshow之_萌新web1至web7

这篇具有很好参考价值的文章主要介绍了ctfshow之_萌新web1至web7。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、访问在线靶场ctfshow

ctf.showhttps://ctf.show/challenges如下图所示,进入_萌新赛的web1问题:

ctfshow之_萌新web1至web7如上图所示,页面代码提示id=1000时,可以查询到flag,进行如下尝试:

ctfshow之_萌新web1至web7

如下图所示,传入参数id=1时,显示出了标题(title)和内容(content)。

ctfshow之_萌新web1至web7

 如上图所示,可以看到查询sql语句,尝试使用id=1 or id =1000,截图如下:

ctfshow之_萌新web1至web7

 如上图所示,只显示了id=1时的内容,再看sql语句,order by id limit 1,对id进行了排序且只输出第1条的title和content。尝试传入参数id=2时,title和content都没显示出来,截图如下:

ctfshow之_萌新web1至web7

尝试传入参数id=2 or id=1000,title和content显示出来了id=1000时的title和content,截图如下:

ctfshow之_萌新web1至web7

 这这这,为何显示了flag❓

order by id limit 1为何显示出来了id=1000的title和content呢?!

本来想着让order by id limit 1失效,没想到flag显示出来了😓。

尝试传入参数id=2 or id=1000 --+,如截图所示也显示出来flag,--+在数据库中是注释掉后面一行内容,即使order by id limit 1失效,这里的+,在浏览器访问地址中表示空格,传入sql语句中是空格。

ctfshow之_萌新web1至web7

 尝试传入参数id=2 || id=1000同上,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id=2 union select * from article where id=1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id='1000',如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id="1000",如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id=~~1000~在sql语句中表示取反,~~1000是取反后再取反,即还是原数1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id=0b1111101000即二进制数1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id=01750即八进制数1000,为何未显示出来flag?!

ctfshow之_萌新web1至web7

  尝试传入参数id=0x3e8即十六进制数1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id=20*50即20乘以50运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id=500/0.5即500除以0.5运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id=0000^1000即0000异或1000运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 尝试传入参数id=0000|1000即0000或1000运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

  尝试传入参数id=125<<3即125的二进制左移3位后,后面补0,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id=power(10,3)即10的3次方运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

尝试传入参数id='1e3'即科学计数法10的3次方运算,等于1000,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

  尝试传入参数id=/**/1000/**/在sql语句中,星号之间是注释说明,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

  尝试传入参数id=/*!1000*//*!1000*/在sql语句中是内联注释,如截图所示也显示出来flag。

ctfshow之_萌新web1至web7

 二、$_GET['id']获取到的参数是String类型的

如下图所示,尝试传如参数id='1000'或id=8时,$_GET['id']获取到的id数值类型是String类型的。

ctfshow之_萌新web1至web7

ctfshow之_萌新web1至web7

所以想要输出id=1000时的结果,需要查看intval()的运行结果,且需要查询sql能正常执行。

比如,传入参数id=id=2 or id=1000 --+,intval("id=2 or id=1000 --+")的运行结果是2,且sql执行结果是查询出了id=2 or id=1000的结果。

比如,传入参数id='1000',intval("'1000'")的运行结果是0,查询sql时id='1000',直接查询出id=1000的结果。

比如,传入参数id=01750,intval("01750")的运行结果是1750,所以未能执行sql,查不出来flag!

另外,就是id传入的参数是字符串,intval()转为整数时,是一位一位转换为整数时,遇到非数字值时则停止,若没有数值,则直接返回0,所以intval("id=2 or id=1000 --+")转换为整数时是2。


三、intval()函数尝试

再返回来看看该题,传入参数id=1000时报错;审计代码,使用intval($id)函数进行条件判断,菜鸟教程查询该函数,解释如下:

ctfshow之_萌新web1至web7

ctfshow之_萌新web1至web7

 被这个intval()函数搞得晕头转向了😓

ctfshow之_萌新web1至web7

 在csdn的InsCode编辑其中,中进行了如上尝试,感觉貌似知道了intval函数啥意思,又被菜鸟教程的实例搞晕了,继续尝试,怎么都没法理解,想出来的奇葩理由🤭:

ctfshow之_萌新web1至web7

对于这个函数神奇的表现,猜测如下😂:

intval()函数返回的是十进制的整数。

第一个参数可以是数字、可以是字符串。

第二个参数是指定第一个参数的数字类型(二进制、八进制、十六进制......),可以指定,也可以不指定,不指定时默认为十进制,若是0,将会对第一个参数做合法性校验。

第一个参数若为字符串,转换为十进制时是一位一位来计算的,若和第二位参数指定的类型不符时,遇到不合法位前,也会一位一位计算出第二位参数指定进制的十进制结果;若没有指定第二个参数,那么默认按十进制转换;第一个参数若为数值时,第二个参数指明的类型是否正确,你就别给我胡强了的感觉😄。

另外还有个特殊情况,就是第二个参数可以是0,是0时,会判断第一个参数是不是满足数据类型要求,比如二进制0b10(二进制以0b开头,数值部分只能包含1或0),八进制072(八进制以0开头,数值部分只能包含0至7这8个数字),十六进制0xa8(十六进制以0x开头,数值部分只能包含0至9,a至f),若不满足数据类型要求,则直接报语法错误!文章来源地址https://www.toymoban.com/news/detail-429572.html


到了这里,关于ctfshow之_萌新web1至web7的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是Web1.0时代、Web2.0时代、Web3.0时代?

       互联网的起源 。1969年美国的阿帕网的出现标志着互联网的诞生,而1973年第一台个人电脑The Xerox Alto的出现就预示了互联网将蓬勃生长,随之而来的就是我们迈入了信息时代。短短几十年的发展,接入互联网的人数呈现出爆炸式的增长,我们也从最初的Web1.0时代,进入

    2024年02月05日
    浏览(38)
  • 区块链之web1.0、web2.0、web3.0、特点、示例、出现的问题

    一、 Web 1.0(静态网页) 时间范围:1990年代中期到2000年代初 特点: 只读 静态网页:网页内容的呈现和更新需要手动进行,缺乏交互性和动态性 信息消费者:通过浏览网页来获取信息,无法参与内容的创作 中心化内容发布:网页的内容由少数机构或个人控制和发布。大多数

    2024年02月06日
    浏览(38)
  • 互联网上下50年,万字长文推演Web1.0到Web5.0

    文/沈旸 (微信公众号:信息化与数字化) 如果说2021年科技圈最火的概念是“元宇宙”,那么2022年最火的一定是Web3.0了。目前看来,较早定义Web3.0概念的,是区块链研究员Eshita。 Web1.0:可读 Read Web2.0:可读+可写 Read+Write Web3.0:可读+可写+拥有      Read+Write+Own 不过,从直观

    2024年01月16日
    浏览(24)
  • vue对接海康web1.5.2开发包,实现摄像头画面展示

    目录 前言 一、首先下载视频web插件v.1.5.2版本 二、利用官方插件包进行相关需求开发 1.官方插件包和开发文档的下载 2.在项目中引入插件包的相关的js (1)下载完成后打开 (2)在项目中public文件下创建一个文件夹放视频插件js 3..new 一个WebControl 插件相关实例  (1)创建Web

    2024年02月08日
    浏览(36)
  • CTFshow web入门---web56

    题目: 题目分析: 查看本题,发现本题为命令执行类题目,但是有一个很致命的点,那么就是他过滤了所有的字母和数字,以及一系列的符号。因此本题最值得推敲的点就是如何实现 无字母数字的命令执行 通过拜读P神的一篇文章,其中《无字母数字webshell之提高篇》讲到了

    2023年04月22日
    浏览(28)
  • vue项目引用海康视频插件(web1.5),el-date-picker下拉选择时间面板会被遮盖问题解决。

    一、海康插件浮窗的层级,会把项目中时间控件中的时间选择面板挡住,导致时间面板显示不全,无法选择时间。如图所示: 二、解决办法:调用API中的JS_ JS_CuttingPartWindow(iLeft, iTop, iWidth, iHeight )方法, 三、效果图 四、API接口文档 大致意思就是当点击时间控件出现时间选择

    2024年02月11日
    浏览(28)
  • ctfshow web入门 web141-145

    1.web141 ^w+$表示在开头和末尾匹配字母数字_,传入的v3值不能有字母数字_,即无字母的命令执行 php中1-phpinfo()是可以执行的,加减乘除都可以实现 这里或,异或,取反等运算都可以 这里采用羽师傅的异或脚本生成payload payload: 2.web142 payload: 3.web143 过滤了取反,+,-等符号,还可

    2024年02月22日
    浏览(59)
  • ctfshow命令执行(web29-web52)

    目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 web45 web46 web47 web48 web49 web50 web51 web52 代码解释判断是否存在GET型参数c 如果存在赋值给变量c 如果参数值没有匹配到字符串flag则执行代码 eval() 直接传参 第一种方法 ?c=system(\\\'ls\\\'); ?c=system(\\\'tac f*\\\'); 第二

    2024年01月20日
    浏览(33)
  • CTFSHOW菜狗杯 web

    简单的解释下这个嵌套 加入cookie中传入 CTFshow-QQ群:=a 那么就会出现 $_POST[\\\'a\\\'] ,假如post传入的值为 a=b ,那么就会得到 $_GET[\\\'b\\\'] ,接着假如get传入 b=c 就会得到 $_REQUEST[\\\'c\\\'] 。 而 $_REQUEST 就get、post都可以接收啦。 加入再get传入 c=123 那么前面这一部分( $_REQUEST[$_GET[$_POST[$_COOKIE[

    2023年04月08日
    浏览(30)
  • CTFshow web入门 web316-web333 XSS

    我tm又来了,总之top10先过一遍,到第三个XSS了,下一个要去看了,看了网上很多wp总感觉不是太全,所以就自己写了一个 网站没有对用户提交的数据进行转义处理或者过滤不足,从而被恶意攻击者利用进而被添加一些恶意可执行脚本嵌入到web页面中去,使别的用户访问都会执

    2024年02月03日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包