{"id":18900254,"url":"https://github.com/ahpaleus/php_grammar_fuzzer","last_synced_at":"2026-03-02T10:30:19.788Z","repository":{"id":212272851,"uuid":"267853314","full_name":"ahpaleus/php_grammar_fuzzer","owner":"ahpaleus","description":"PHP grammar fuzzer based on dharma (Mozilla Security)","archived":false,"fork":false,"pushed_at":"2020-05-29T12:36:13.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T09:32:33.543Z","etag":null,"topics":["dharma","fuzzing","php"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahpaleus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-05-29T12:33:26.000Z","updated_at":"2020-05-29T13:01:07.000Z","dependencies_parsed_at":"2023-12-13T12:38:47.128Z","dependency_job_id":null,"html_url":"https://github.com/ahpaleus/php_grammar_fuzzer","commit_stats":null,"previous_names":["ahpaleus/php_grammar_fuzzer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahpaleus%2Fphp_grammar_fuzzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahpaleus%2Fphp_grammar_fuzzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahpaleus%2Fphp_grammar_fuzzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahpaleus%2Fphp_grammar_fuzzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahpaleus","download_url":"https://codeload.github.com/ahpaleus/php_grammar_fuzzer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239880058,"owners_count":19712322,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dharma","fuzzing","php"],"created_at":"2024-11-08T08:50:42.859Z","updated_at":"2026-03-02T10:30:19.748Z","avatar_url":"https://github.com/ahpaleus.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# php_grammar_fuzzer\nPHP grammar fuzzer based on dharma (Mozilla Security)\n\nExample usage:  \n```php\n✗ dharma -grammar php_grammar.dg\n[Dharma] 2020-05-29 14:34:40,253 INFO: Machine random seed: -5517621903007805456\n[Dharma] 2020-05-29 14:34:40,254 DEBUG: Using configuration from: /usr/local/lib/python2.7/site-packages/dharma/settings.py\n[Dharma] 2020-05-29 14:34:40,255 DEBUG: Processing grammar content of ../../../usr/local/lib/python2.7/site-packages/dharma/grammars/common.dg\n[Dharma] 2020-05-29 14:34:40,259 DEBUG: Processing grammar content of php_grammar.dg\ntry { try {  $vars[\"DOMText\"]-\u003eisWhitespaceInElementContent(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { proc_open(\"-1\", array(\"a\" =\u003e 0.1111, \"b\" =\u003e \"-9223372036854775809\", \"c\" =\u003e 9223372036854775807 ), $ref_array, \"%00%0a%0d\", array(\"a\" =\u003e 1.79769313486e+308, \"b\" =\u003e \"-1\", \"c\" =\u003e 0.1111 ), array(\"a\" =\u003e 0xff, \"b\" =\u003e \"%00%0a%0d\", \"c\" =\u003e 8446744073709551616 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionFunction\"]-\u003einvokeArgs(array(\"a\" =\u003e 65536, \"b\" =\u003e \"-9223372036854775809\", \"c\" =\u003e 0.678426 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { mb_strstr(\"-9223372036854775809\", \"\\x00\", true, \"%00%0a%0d\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { lcg_value(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { random_int(357913942, 0x3fffffff); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { array_diff_key(array(\"a\" =\u003e 255, \"b\" =\u003e \"\\xff\", \"c\" =\u003e 65535 ), array(\"a\" =\u003e 0xfffffffe, \"b\" =\u003e \"-9223372036854775809\", \"c\" =\u003e -9223372036854775809 ), array(\"a\" =\u003e -357913942, \"b\" =\u003e \"\\x00\", \"c\" =\u003e -1.97684995314e+16 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { $vars[\"DOMNodeList\"]-\u003eitem(1); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionClassConstant\"]-\u003egetDocComment(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { curl_setopt_array(fopen(\"/tmp/doesntexist\", \"w\"), array(\"a\" =\u003e 79228162514264337593543950336l, \"b\" =\u003e \"%00%0a%0d\", \"c\" =\u003e 0x100000 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { fgetss(fopen(\"/tmp/doesntexist\", \"w\"), 4294967296, \"m\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionGenerator\"]-\u003egetExecutingGenerator(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { ctype_alnum(\"%00%0a%0d\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"Directory\"]-\u003eclose(fopen(\"/tmp/doesntexist\", \"w\")); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { $vars[\"DOMNodeList\"]-\u003ecount(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionFunction\"]-\u003egetClosure(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { min(-2147483648, -65535); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { $vars[\"DOMNode\"]-\u003eC14N(true, 1, array(\"a\" =\u003e -1.97684995314e+16, \"b\" =\u003e \"\\xff\", \"c\" =\u003e 0x10000 ), array(\"a\" =\u003e 1.79769313486e+308, \"b\" =\u003e \"k\", \"c\" =\u003e 0.1111 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SplFileObject\"]-\u003ekey(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { ignore_user_abort(1); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { $vars[\"DateInterval\"]-\u003eformat(\"\\xff\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { gzopen(\"-1\", \"v\", 0x1000); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"Error\"]-\u003egetCode(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { connection_aborted(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionType\"]-\u003eallowsNull(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { popen(\"\\x00\", \"%00%00%00\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"MultipleIterator\"]-\u003ekey(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMText\"]-\u003eisWhitespaceInElementContent(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionGenerator\"]-\u003egetFunction(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionParameter\"]-\u003egetClass(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ReflectionParameter\"]-\u003eisPassedByReference(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { posix_setpgid(0x1000, 32768); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMDocumentFragment\"]-\u003eappendXML(\"-9223372036854775809\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { set_time_limit(-0); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SplFixedArray\"]-\u003enext(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SplDoublyLinkedList\"]-\u003epop(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { openssl_pkcs12_export(array(\"a\" =\u003e 0xff, \"b\" =\u003e \"%00%0a%0d\", \"c\" =\u003e 0xffffffff ), $ref_string, array(\"a\" =\u003e 18446744073709551616, \"b\" =\u003e \"%00%0a%0d\", \"c\" =\u003e 0xff ), \"w\", array(\"a\" =\u003e -2147483648, \"b\" =\u003e \"\\xff\", \"c\" =\u003e 2.07564741538e+16 )); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMElement\"]-\u003esetAttributeNS(\"%00%0a%0d\", \"%00%00%00\", \"-1\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMImplementation\"]-\u003ecreateDocument(\"%00%00%00\", \"-1\",  new DOMDocumentType()); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { flock(fopen(\"/etc/passwd\", \"r\"), 0, $ref_int); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { $vars[\"DateInterval\"]-\u003ecreateFromDateString(\"\\xff\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"ErrorException\"]-\u003egetSeverity(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { ksort($ref_array, 0xff); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SessionHandler\"]-\u003eopen(\"%00%00%00\", \"\\xff\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMDocument\"]-\u003esaveXML(new DOMNode(), 0x1000); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"MultipleIterator\"]-\u003enext(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMText\"]-\u003esplitText(357913942); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { mhash(65536, \"-9223372036854775809\", \"-1\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { xmlwriter_start_dtd_attlist(fopen(\"/dev/null\", \"r\"), \"%00%0a%0d\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { proc_close(fopen(\"/etc/passwd\", \"r\")); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { hash_copy(hash_init(\"md5\")); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { get_browser(\"%00%0a%0d\", 0); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"MultipleIterator\"]-\u003ecountIterators(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"Error\"]-\u003egetMessage(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SplDoublyLinkedList\"]-\u003egetIteratorMode(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { putenv(\"-1\"); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { dom_import_simplexml(new SimpleXMLElement(\"\u003clt\u003ea\u003cgt\u003ea\u003clt\u003e/a\u003cgt\u003e\")); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { strspn(\"\\xff\", \"-1\", -0, 32768); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"SplDoublyLinkedList\"]-\u003egetIteratorMode(); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try {  $vars[\"DOMXPath\"]-\u003equery(\"\\xff\", new DOMNode(), false); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { flock(fopen(\"/etc/passwd\", \"r\"), 0xff, $ref_int); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { asort($ref_array, 65536); } catch (Exception $e) { } } catch(Error $e) { }\ntry { try { usort($ref_array, \"phpinfo\"); } catch (Exception $e) { } } catch(Error $e) { }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahpaleus%2Fphp_grammar_fuzzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahpaleus%2Fphp_grammar_fuzzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahpaleus%2Fphp_grammar_fuzzer/lists"}